Behandlung eines Seitenfehlers (Page Fault)

Ein Seitenfehler ist ein synchroner Ausnahmeinterrupt, der von der MMU ausgelöst wird, wenn ein Prozess auf eine virtuelle Seite zugreift, deren Präsenzbit P=0 ist:

  1. Interrupt-Auslösung: Die MMU stoppt die Befehlsausführung des aktuellen Prozesses im Befehlszähler und signalisiert der CPU den Page Fault-Ausnahmezustand.
  2. Kontextwechsel: Das Betriebssystem übernimmt im privilegierten Systemmodus die Kontrolle, sichert den CPU-Zustand des blockierten Prozesses im PCB und startet die Behandlungsroutine.
  3. Kachel-Allokation: Das Betriebssystem prüft die Liste der freien Kacheln. Ist der RAM vollständig belegt, wird eine Replacement Policy aktiviert, um eine geladene Seite zu verdrängen.
  4. Synchrones Herausschreiben (optional): Ist das Modifikationsbit (D) der zu verdrängenden Seite auf 1 gesetzt, schreibt das Betriebssystem die Kachel synchron auf den Hintergrundspeicher (Auslagerungsdatei/Swap). Ihr Präsenzbit wird auf 0 gesetzt.
  5. Einlagerung (Page-In): Das Betriebssystem liest die angeforderte Seite vom Hintergrundspeicher ein und kopiert sie physisch in die freigewordene Kachel des RAMs.
  6. Seitentabellen-Update: Die Kachelnummer wird in den Seitentabelleneintrag des blockierten Prozesses eingetragen, das Präsenzbit auf 1 und das Referenzbit auf 0 zurückgesetzt.
  7. Prozess-Resumption: Der Zustand des Prozesses wird wiederhergestellt. Der exakte CPU-Befehl, der den Seitenfehler verursacht hat, wird hardwarerelevant ein zweites Mal gestartet.