Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When a page fault occurs, the system must fetch the page from disk.

Does this mean that there is a page table stored on the hard drive for every running process (to fetch the page from)?

If yes, does the swap partition hold these page tables?

share|improve this question

migrated from stackoverflow.com Dec 27 '11 at 14:08

This question came from our site for professional and enthusiast programmers.

The page table is stored in memory, the actual swapped out pages are stored in the swap file. The page table keeps track of which pages are stored in memory vs. the swap file and where they are located. Some pages of the page table MAY be virtualized as well.

You can find more information on Wikipedia at http://en.wikipedia.org/wiki/Page_table.

share|improve this answer

Yes. Every process has a page table corresponding to it which is stored in the main memory (RAM). Page tables cannot be stored on the disk as it would take really long to go access the page table in the disk for every memory access (assuming no TLB or miss in TLB). In case of multi level page tables (used to reduce space occupied by page tables on RAM), it makes sense to have at least 2 levels of page table to be in the RAM (first to point to the second and second to give you the VA to PA translation).

As for the swap partition, that is like an overflow for the RAM. Pages that are rarely accessed or pages that cannot be stored in RAM due to overflow are stored in the swap partition. Swap memory is faster that disk as you know exactly where it is located on the hard drive.

share|improve this answer

You must log in to answer this question.