Page Table & MMU
Page Table & MMU
Auf einen Blick
Die Page Table ordnet jeder Page ihr Page Frame zu. Die MMU (Memory Management Unit) führt diese Umsetzung bei jedem Speicherzugriff durch. Pro Page gibt es einen Page Table Entry (PTE) mit Frame-Adresse und Status-Bits.
Interaktiv: virtuell → physikalisch
Aufbau eines PTE
Pro Page existiert ein Page Table Entry mit:
- der physikalischen Startadresse des aktuell zugeordneten Page Frames
- Present Bit — liegt die Page im RAM?
- Dirty Bit — wurde die Page verändert? (entscheidet, ob sie beim Verdrängen zurückgeschrieben werden muss)
- Accessed Bit — wurde auf die Page zugegriffen? (Basis für Second Chance)
- R/W Bit — read-only?
- Cache Bit — darf die Page gecached werden?
Ablauf eines Zugriffs vadr = (p, offset)
- Suche in der Page Table den Eintrag zu p.
- Prüfe per Present Bit, ob die Page im RAM ist.
- Ja: ersetze p durch die Frame-Nummer
pfn→ Zugriff auf(pfn, offset). - Nein: die MMU löst einen Page Fault aus.
Mehrstufige & invertierte Page Tables
Eine einzige Page Table wäre zu groß, daher:
- mehrstufige Page Tables (2–4 Stufen) — die ersten Stufen (Page Directories) verweisen nur weiter.
- invertierte Page Tables — speichern pro Frame die dort liegende Page; brauchen zusätzliche Hardware (TLB).
Der Overhead
Eine n-stufige Page Table kostet pro Zugriff t = (n+1)·t_RAM — jeder Speicherzugriff bräuchte mehrere! Erst der TLB macht VM praktikabel.
Verwandte Notes
Segmente & Pages · TLB · Page Faults · Virtual Memory · Paging-Algorithmen