1
Program references a virtual memory address
2
OS checks page table — is this page in RAM? If yes → access it (page hit)
3
If not in RAM → page fault — OS must load page from disk
4
If RAM full, OS evicts least recently used (LRU) page back to disk, loads needed page into freed frame
5
Page table updated; program continues — program is unaware this happened