5 SpeicherverwaltungPage Faults

Page Faults

Auf einen Blick

Ein Page Fault tritt auf, wenn die zugegriffene Page nicht im RAM ist (Present-Bit = 0). Die MMU löst dann eine synchrone Exception aus; der Page Fault Handler lädt die Page nach.

Definition

Ein Page Fault tritt auf, wenn die zugegriffene Page nicht im physikalischen Hauptspeicher ist.

Es ist eine synchrone Unterbrechung — ein Fault (Interrupts & Exceptions), denn der auslösende Befehl wird wiederholt.

Behandlung — interaktiv

page-fault.html

Die Schritte des Handlers:

  1. Ggf. Platz schaffen im RAM (→ Page Replacement).
  2. Page im Auslagerungsbereich lokalisieren.
  3. Page in das freigeräumte Page Frame schreiben.
  4. PTE aktualisieren (Startadresse, Present-, Accessed-, Dirty-Bit).
  5. Den unterbrochenen Befehl wiederholen.

Demand Paging vs. Prepaging

  • Demand Paging: Einlagern erst bei Bedarf (beim Page Fault).
  • Prepaging: schon vor der konkreten Anforderung (Windows „Lazy Page Out", Unix Paging-Daemon) — entkoppelt Replacement von der Fault-Behandlung.

Performance

Die effektive Zugriffszeit hängt stark von der Fault-Wahrscheinlichkeit f ab:

teff=(1f)tmean+ftPFt_{eff} = (1-f)\cdot t_{mean} + f\cdot t_{PF}

Da t_PF wegen des langsamen Auslagerungsbereichs riesig ist, müssen Paging-Algorithmen die wichtigen Pages im RAM halten. Geht das schief, droht Thrashing.

Verwandte Notes

Page Table & MMU · Paging-Algorithmen · Thrashing · Interrupts & Exceptions · Speicherhierarchie

← Kapitelübersicht


⬅️ TLB · Paging-Algorithmen ➡️

Built with LogoFlowershow