Understanding Memory: Page Fault Resolution

Posted: December 3rd, 2008 | Author: TnT Admin | Filed under: Concepts | Tags: , | 1 Comment »

For all its virtues, virtual memory can raise some serious performance issues. Among them is execution delays encountered by programs whenever they reference virtual memory locations not in the current set of memory-resident pages. This is known as page fault. A program thread that incurs a page fault is halted during page fault resolution, the time it takes the OS to find the specific page on disk and restore it to real memory.
When a program execution thread attempts to reference an address on a page that is not currently resident in real memory, a hardware interrupt occurs that halts the executing program. An OS interrupt service routine (ISR) gains control following the interrupt and determines that the address referenced is valid, but is not currently resident. (If a program accesses an invalid memory location due to a logic error, e.g. referencing an un-initialized pointer, a similar hardware error occurs. It is up to the ISR to distinguish between the two conditions.) The OS then must remedy the situation by locating a copy of the desired page on a secondary storage, using an I/O operation to the paging file, and copying the designated page from disk into a free page in RAM. Once the page has been copied successfully, the OS re-dispatches the temporarily halted program, allowing the program thread to continue its normal execution cycle.

(Source:Windows 2000 Performance Guide by Mark Friedman & Odysseas Pentakalos)

Related Posts


One Comment on “Understanding Memory: Page Fault Resolution”

  1. 1 Jeff Leonard said at 12:31 am on December 9th, 2008:

    This entry is more of an explanation. A path resolution, for example on an IIS server, try this from the Microsoft Technet website
    http://technet.microsoft.com/en-us/library/bb742534.aspx
    Which still does not provide resolution but does point you somewhat down the path.


Leave a Reply