Previous forms of address translation: base and bound registers, segmentation. These are not very flexible.

Today: paging.

1. Basic idea

2. Translation Lookaside Buffer

3. Page table tricks

4. Page table structures

Hierarchical paging
  • Basic multi-level approach with fixed-size directories/tables/etc.
  • Page table can be very big: e.g. 64-bit addresses with 4K pages → 252 page table entries per process.

  • Multi-level directory reduces cost but not enough.
Hashed page tables
  • The answer to all data structure problems: use a hash table.
  • May require following long hash chains if we get a lot of collisions.
  • Variant: clustered page tables which are essentially multi-level page tables where top levels are hashed.

Inverted page tables
  • Idea: store table as (physical frame, logical page) instead of (logical page, physical frame)
  • Selling point: page table bounded by (size of physical memory) / (page size)
  • Cost: can't do address translation without searching the entire table
    • So use a hash table
  • Subtler cost: can't implement shared pages, since each physical frame maps to exactly one logical page


CategoryOperatingSystemsNotes

Paging (last edited 2007-12-25 23:42:11 by localhost)