Structures of the Page Table

  1. Inverted Page Tables: As we learned earlier, page tables can get huge. One way to decrease their size is to only include entries for pages whose frames are currently inside main memory.
    • This is called an inverted page table because we focus more on the frames, not the pages.
    • Each entry of that table contains (1) the process id number, (2) the page number, and (3) the frame in memory.
    • If a page of a certain process isn't currently inside main memory, it won't appear in such a page table at all.
    • This way, we keep the page table small.
    • A possible disadvantage of this method is that the frame search time becomes longer (we might traverse the entire table just to find out that the page isn't there.) However, if the table is turned into a hashed page table (see slides 39-40 here,) this issue is resolved.
    • One issue that we can't prevent with inverted page tables is that each frame is now associated with only one process. We can't share memory between two processes anymore because the page table won't allow more than one entry for the same frame, so only 1 process can access the data in each frame.