Carnegie Mellon
Memory Mapping
VM areas initialized by associating them with disk objects.
Process is known as memory mapping.
Area can be backed by (i.e., get its initial values from) : Regular file on disk (e.g., an executable object file)
Initial page bytes come from a section of a file Anonymous file (e.g., nothing)
First fault will allocate a physical page full of 0’s (demand-zero page) Once the page is written to (dirtied), it is like any other page
Dirty pages are copied back and forth between memory and a special swap file.
1
Carnegie Mellon
Demand paging
Key point: no virtual pages are copied into physical memory until they are referenced!
Known as demand paging
Crucial for time and space efficiency
2
Carnegie Mellon
Sharing Revisited: Shared Objects
Process 1 virtual memory
Physical memory
Process 2 virtual memory
Process 1 maps the shared
object.
Shared object
3
Carnegie Mellon
Sharing Revisited: Shared Objects
Process 1 virtual memory
Physical memory
Process 2 virtual memory
Process 2 maps the shared
object.
Notice how the virtual
addresses can be different.
Shared object
4
Carnegie Mellon
Sharing Revisited:
Private Copy-on-write (COW) Objects
Process 1 virtual memory
Physical memory
Process 2 virtual memory
Private copy-on-write area
Two processes mapping a private copy-on-write (COW) object.
Private copy-on-write object
Area flagged as private copy-on- write
PTEs in private areas are flagged as read-only
5
Carnegie Mellon
Sharing Revisited:
Private Copy-on-write (COW) Objects
Process 1 virtual memory
Physical Process 2 memory virtual memory
Instruction writing to private page triggers protection fault.
Handler creates new R/W page.
Instruction restarts upon handler return.
Copying deferred as long as
possible!
Copy-on-write
Write to private copy-on-write page
Private copy-on-write object
6