Demand paging
<memory management> A kind of
virtual memory where a
page of memory will be paged in if an attempt is made to access it and it is not already present in main memory.
This normally involves a
memory management unit which looks up the
virtual address in a page map to see if it is paged in.
If it is not then the
operating system will page it in, update the page map and restart the failed access.
This implies that the processor must be able to recover from and restart a failed memory access or must be suspended while some other mechanism is used to perform the paging.
Paging in a page may first require some other page to be moved from main memory to disk ("paged out") to make room.
If this page has not been modified since it was paged in, it can simply be reused without writing it back to disk.
This is determined from the "modified" or "dirty" flag bit in the page map.
A
replacement algorithm or policy is used to select the page to be paged out, often this is the
least recently used (LRU)
algorithm.
Prepaging is generally more efficient than demand paging.