VAX/VMS Memory System
DEC's clean VM manager — 512B pages, segmented address space, no reference bit, and segmented FIFO with second-chance lists.

Background
VAX/VMS — reputedly a clean, well-done virtual memory manager. DEC introduced the VAX-11 in the late 1970s; Dave Cutler led the VMS OS.
Hardware sketch
| VA | 32-bit per process |
| Page size | 512 bytes (too small → big page tables) |
| VPN | 23 bits |
| Offset | 9 bits |
Upper VPN bits select which segment the page lives in.
Why segment?
512B pages → linear page tables get huge. Fix: segment the address space (user / system).
Address space layout
0 ─────────────── Page 0 invalid
│ User code / user heap (P0)
│ heap grows ↓
2³⁰ ─────────────
│ User stack (P1)
2³¹ ─────────────
│ System (S)
│ trap, kernel data/code
│ kernel heap ↓ against unused
2³² ─────────────
Unused
PTE bits
Valid, protection, dirty, PFN — but no reference bit. That hurts replacement (memory hogs).
Replacement: segmented FIFO
VMS uses segmented FIFO with second-chance lists — pages land there as they're evicted, getting another shot before they're really gone.