Demand Paging ist eine Variante des Paging, bei der Pages nur in den RAM geladen werden, wenn sie auch benutzt werden. Dadurch ergeben sich einige Vorteile:

  • Verringerter E/A-Aufwand
  • Reduzierte Speicherbelegung
  • Höhere Responsivität
  • Mehr Benutzer

Für das Demand Paging wird eine zusätzliche Spalte in den Page Tables benötigt: Das Valid-Invalid Bit. Steht es auf v (valid), ist die Page in den Speicher geladen, steht es auf i (invalid), ist die Seite nicht im Speicher und eine trap (der sog. Page Fault) wird verarbeitet. Dafür ist eine zusätzliche Tabelle notwendig, in der steht, ob die Page zum Prozess gehört.

  • Page gehört nicht zum Prozess
    • Prozess abbrechen
  • Seite gehört zum Prozess:
    1. Freien Frame suchen
    2. Seiteninhalt laden - swap
    3. Seitentabelle(n) aktualisieren
    4. Valid-Invalid Bit auf v setzen
    5. Instruktion, die zum Page Fault geführt hat, erneut ausführen

Effektive Zugriffszeit

Sei die Page Fault Rate (0=Keine Page Faults, 1=Alles Page Faults), dann ist die effektive Zugriffszeit EAT