Structures of the Page Table

Because we use the page table to find in which frame some data resides in memory, it is imperative that the structure of the page table allows fast and efficient usage. Each of the following structures addresses a different efficiency issue/aspect:

  1. Hierarchical Paging: when the page table consists of many entries (which is very common in OSs with large main memory chips,) we can break the page table into smaller, non-contiguous chunks, each of which could be stored at a different location inside memory. This way, we make our storage of the page table more flexible.
    • One solution is to create an outer page table for the page table! (known as a two-level paging scheme)
    • Here is a cool analogy: think of a huge book that has an index section at the end to let the reader know on which pages some mentioned terms and concepts can be found. Because the book is very large, the index itself is large, so a solution is to break the index into further sections, such as alphabetically, etc.
    • Furthermore, in systems with a huge address space, even with a two-level paging, the outer table will still be too large, so those systems use three-level tables: 2nd outer page table → 1st outer table → inner page table!