01Overview
In 1962 the Manchester Atlas implemented demand paging for the first time: the addresses a program uses are translated by hardware, and only pages actually touched are brought into memory. By the late 1960s virtual memory was standard on mainframes; in the 1980s it reached personal computers.
Virtual memory gives three things: isolation (processes cannot see each other’s memory), abstraction (an address space larger than physical RAM) and sharing (several processes mapping the same library). The price is page-table walks and TLB misses. Today containers and virtual machines stack further isolation layers on top of it.
02History
- 1962
Atlas demand paging
The first implementation of virtual memory.
- 1969
Unix virtual memory
fork and copy-on-write.
- 1980
PCs enter protected mode
Virtual memory reaches personal computers.
- 2000
Huge pages and TLB tuning
A response to the memory wall.
03Core concepts
Page table
A structure mapping virtual page numbers to physical frames.
Page fault
Raised when a page is not in memory; the OS brings it in.
Copy-on-write
After fork parent and child share pages; a write triggers the copy.
04Hands-on
Do it once — it beats reading it ten times
Write a page-fault simulator: trace an access pattern, count faults for LRU and FIFO, and compare
05Self-check
Say it in your own words first, then open the answer. Whatever you cannot explain is what to review next.
Can you explain "Page table"?
A structure mapping virtual page numbers to physical frames.
Can you explain "Page fault"?
Raised when a page is not in memory; the OS brings it in.
Can you explain "Copy-on-write"?
After fork parent and child share pages; a write triggers the copy.
What problem did it solve, and why was there nothing better at the time?
Go back to the history section: how was this done before, and what did it cost?
If you had to build it today, how would you break it down?
Use the hands-on task above: write a plan of at most three steps before you start.
06Key people
Tom Kilburn
1921 – 2001
Virtual memory and the Atlas operating system.
Maurice Wilkes
1913 – 2010
Led the Atlas computer project.
07Further reading
- Operating System Concepts
- Computer Systems: A Programmer’s Perspective