Virtual Memory and Address Translation
Every process is given its own address space, and the hardware translates its addresses into real ones through a page table on every access. This is what stops one program reading another's memory and what lets a program use more memory than the machine has.
What a learner can do afterwards
- Translate a virtual address to a physical one given a page table and page size
- Explain what the translation lookaside buffer caches and why it matters
- Say what isolation the page table gives and what it does not
1 · Read
Every address your program touches belongs to its address space, the full set of addresses it may use. Think of each program owning its own house with its own room numbers, while all houses share one street.
Address translation maps your numbers to real memory on every access. Split the virtual address into a page number and an offset, look the page up in the page table to find its frame, then attach the same unchanged offset. With a page size of 100, page 3 offset 40 in frame 7 becomes spot 740.
Translation happens on every single access, so speed matters. The translation lookaside buffer caches recent page table entries and answers from the cache instead of walking the table each time.
Separate tables stop one program reading another by guessing numbers, and they allow more addresses than real memory holds. They do not stop a program trashing its own rooms or saving bad data.
Each program numbers its own space, hardware translates every access through its table, and separate tables keep programs apart.
2 · Watch
Take it off screen
Where it sits
8 questions wait behind this lesson, each with its answer explained. Every answer feeds the sky: stars light as they are learned, and dim when it is time to come back.