← Back to Labs
Copy-on-Write Page Table Walk
Watch fork share physical pages, clear writable PTE bits, raise a write fault, and allocate a private page only when one process really diverges.
Parent page table
vpn 0 -> PFN 40 W
vpn 1 -> PFN 41 W
vpn 2 -> PFN 42 W
Child page table
child does not exist yet
Physical pages
PFN 40private to one process
parent view
config
PFN 41private to one process
parent view
heap
PFN 42private to one process
parent view
stack
current kernel note
All three mappings are writable and private.
Step 1 / 5Parent process owns private writable pages
Before fork, the parent has its own page table and each virtual page points to a writable physical page.
Arrow keys to navigate · R to reset
Tap dots to jump to any step