3.3.2.1 Page Fault

Ein Page fault, oder zu deutsch Seitenfehler, tritt auf, falls die MMU bei der Umrechnung einer virtuellen in eine physische Adresse feststellt, dass die benötigte (virtuelle) Seite nicht in einem (physischen) Seitenrahmen eingelagert ist.


Benötigte Seite ist nicht eingelagert

Zu sehen war diese Situation bereits in dem folgenden, schon bekannten Video, ab Minute 05:30:


Aufgabe 1

Aufgabe

Erläutere:
Wie oder woran stellt die MMU fest, ob sie einen Page fault auslösen muss, oder nicht?


Am Ende des Videos wird angedeutet, dass ein Page fault einem Interrupt entspricht. In der Folge muss das Betriebssystem dafür sorgen, dass die fehlende virtuelle Seite in einen freien Seitenrahmen des physischen Hauptspeichers eingelagert wird. Anschließend kann die MMU erneut die Adressumrechnung durchführen.

Die folgende Aufgabe gibt Anlass zu einer detaillierteren Beschäftigung mit einem Page fault:


Aufgabe 2

Aufgabe

Ein Page fault wird ausgelöst, dies wird durch einen Interrupt angezeigt. Was passiert mit diesem Interrupt-Signal?

Oder anders gefragt:
Wie müsste das Video fortgesetzt werden?

Aufgrund deiner Erfahrungen aus den vorangegangenen Kapiteln kannst du eine Prognose zur Fortsetzung des Videos wagen.

  • Notiere stichpunktartig den weiteren Verlauf!
  • Nutze Fachbegriffe zur Beschreibung!
  • Gehe davon aus, dass mehrere Prozesse auf dem Rechner gestartet sind und vom Betriebssystem verwaltet werden.
  • Beginne mit dem Moment, in dem die MMU den Page fault auslöst.
  • Gehe davon aus, dass ein freier Seitenrahmen zur Verfügung steht.
  • Beschreibe bis zu dem Moment, in dem die Adressumrechnung durch die MMU erneut versucht wird und schließlich klappt.

Diskutiere deine Prognose in deiner Lerngruppe! Vervollständigt gemeinsam die Beschreibung und eweitert die Liste der Fachbegriffe.

Erst daran anschließend könnt ihr anhand der folgenden Liste prüfen, ob euch noch Fachbegriffe fehlen, oder ob ihr sogar noch darüber hinaus gehende Begriffe identifiziert habt:


Das Ergebnis der vorangegangenen Aufgabe zeigt den detaillierten Ablauf bei einem Page fault. Dabei wird vereinfachend davon ausgegangen, dass im physischen Speicher ein freier Seitenrahmen zur Verfügung steht, in den die virtuelle Seite aus dem Hintergrundspeicher eingelagert werden kann.

In der Praxis ist aber davon auszugehen, dass nicht immer ein freier Seitenrahmen verfügbar ist. In diesem Fall sind also alle Seitenrahmen bereits belegt und bevor die benötigte Seite eingelagert werden kann, muss zunächst (mindestens) ein Seitenrahmen frei gemacht werden.

Anders ausgedrückt geht es darum, eine derzeit in einem Seitenrahmen eingelagerte virtuelle Seite durch die benötigte virtuelle Seite zu ersetzen. Hierzu gibt es verschiedene sogenannte Seitenersetzungsverfahren.



Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png