Physical Page Tables: Set a predefined portion of physical ram for kernel page tables
Kernel Virtual Memory: Use page tables to store kernel page tables
VMA: A description of each address space region (e.g. shared libraries)
MMap: Map a file to a memory region, synchronous read/write
Segfault: On page faults, check VMA first to verify if the address is valid
Space Fairness
Fixed-Space Algos: Each process has a limit of pages
Variable-Space Algos: Processes’ page limit grows/shrinks dynamically
Replacement
Sharing pages: Put the same PTE in another process’ PT (with different permissions)
Copy on Write: Avoid copying as long as possible, create shared mapping instead