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

  1. 1962

    Atlas demand paging

    The first implementation of virtual memory.

  2. 1969

    Unix virtual memory

    fork and copy-on-write.

  3. 1980

    PCs enter protected mode

    Virtual memory reaches personal computers.

  4. 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

T

Tom Kilburn

1921 – 2001

Virtual memory and the Atlas operating system.

M

Maurice Wilkes

1913 – 2010

Led the Atlas computer project.

07Further reading

  • Operating System ConceptsSilberschatz et al. · 1982
  • Computer Systems: A Programmer’s PerspectiveBryant & O’Hallaron · 2003