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
- Interrupt-Auslösung: Die MMU stoppt die Befehlsausführung des aktuellen Prozesses im Befehlszähler und signalisiert der CPU den Page Fault-Ausnahmezustand.
- Kontextwechsel: Das Betriebssystem übernimmt im privilegierten Systemmodus die Kontrolle, sichert den CPU-Zustand des blockierten Prozesses im PCB und startet die Behandlungsroutine.
- 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.
- Synchrones Herausschreiben (optional): Ist das Modifikationsbit (
) der zu verdrängenden Seite auf gesetzt, schreibt das Betriebssystem die Kachel synchron auf den Hintergrundspeicher (Auslagerungsdatei/Swap). Ihr Präsenzbit wird auf gesetzt. - Einlagerung (Page-In): Das Betriebssystem liest die angeforderte Seite vom Hintergrundspeicher ein und kopiert sie physisch in die freigewordene Kachel des RAMs.
- Seitentabellen-Update: Die Kachelnummer wird in den Seitentabelleneintrag des blockierten Prozesses eingetragen, das Präsenzbit auf
und das Referenzbit auf zurückgesetzt. - Prozess-Resumption: Der Zustand des Prozesses wird wiederhergestellt. Der exakte CPU-Befehl, der den Seitenfehler verursacht hat, wird hardwarerelevant ein zweites Mal gestartet.