3.3.2.2.3 Seitenersetzungsverfahren

[gesichtete Version][gesichtete Version]
Zeile 66: Zeile 66:
Betrachte folgende Situationen:
Betrachte folgende Situationen:
* Die Inhalte der Seite wurden verändert, weil Werte in Speicherzellen dieser Seite geschrieben wurden.
* Die Inhalte der Seite wurden verändert, weil Werte in Speicherzellen dieser Seite geschrieben wurden.
* Die Inhalte der Seite wurden nicht verändert, zudem befindet sich eine Kopie der Seite bereits im Hintergrundspeicher, weil sie zu einem früheren Zeitpunkt bereits einmal ausgelagert war.
* Die Inhalte der Seite wurden nicht verändert, zudem befindet sich eine Kopie der Seite im Hintergrundspeicher, weil sie zu einem früheren Zeitpunkt bereits einmal ausgelagert war.
</p>
</p>
</loop_task>
</loop_task>

Version vom 3. Dezember 2013, 23:13 Uhr

Tritt bei der Adressumrechnung in der MMU ein Page fault auf, so muss das Betriebssystem dafür sorgen, dass die benötigte virtuelle Seite aus dem Hintergrundspeicher in einen freien Seitenrahmen des physikalischen Speichers eingelagert wird.

Steht derzeit aber kein freier Seitenrahmen zur Verfügung, so ist es die Aufgabe des implementierten Seitenersetzungsverfahrens zu entscheiden, welche momentan eingelagerte virtuelle Seite in den Hintergrundspeicher verschoben wird. Dadurch wird dann (mindestens) ein freier Seitenrahmen geschaffen, die benötigte virtuelle Seite kann eingelagert werden, und die MMU kann die zuvor gescheiterte Adressumrechnung erneut durchführen.


Was bei der Seitenersetzung passiert

Eine einfache Beschreibung des Ablaufs einer Seitenersetzung ist wie folgt:

  1. Die MMU stellt fest, dass die benötigte virtuelle Seite B nicht in einem Seitenrahmen eingelagert ist und löst deshalb einen Page fault aus.
  2. Es wird festgestellt, dass kein freier Seitenrahmen mehr verfügbar ist, das Seitenersetzungsverfahren wird deshalb gestartet.
  3. Die zu ersetzende Seite E wird bestimmt, sie ist derzeit in Seitenrahmen X eingelagert.
  4. Die zu ersetzende Seite E wird in den Hintergrundspeicher geschrieben. Damit ist ihr Inhalt gesichert, sie kann später wieder eingelagert werden.
  5. Die benötigte Seite B wird eingelagert, d.h. ihr Inhalt wird in den Seitenrahmen X geschrieben. Das Ersetzungsverfahren ist damit abgeschlossen.


Wichtig

Das Schreiben der zu ersetzenden Seite E in den Hintergrundspeicher kostet viel Zeit! Das ist schlecht für die Performanz des Gesamtsystems.


Es ist deshalb sinnvoll, eine zu ersetzende Seite nur dann in den Hintergrundspeicher zu kopieren, wenn dies auch tatsächlich notwendig ist.

Eine Seite kann beispielsweise den Programmtext oder die Daten eines Prozesses enthalten.


Aufgabe 1

Aufgabe

Eine zu ersetzende Seite enthält lediglich Programmtext (also den ausführbaren Maschinencode mit den Befehlen) eines Prozesses. Diese Inhalte dürfen während der Ausführung des zugehörigen Prozesses nicht verändert werden.

Ist es erforderlich, diese Seite in den Hintergrundspeicher auszulagern, oder kann die dafür benötite Zeit eingespart werden? Erläutere deine Antwort!


Aufgabe 2

Aufgabe

Eine zu ersetzende Seite enthält Daten. Diese Inhalte können verändert worden sein, müssen aber es nicht.

Ist es erforderlich, diese Seite in den Hintergrundspeicher auszulagern, oder kann die dafür benötite Zeit eingespart werden? Erläutere deine Antwort!

Betrachte folgende Situationen:

  • Die Inhalte der Seite wurden verändert, weil Werte in Speicherzellen dieser Seite geschrieben wurden.
  • Die Inhalte der Seite wurden nicht verändert, zudem befindet sich eine Kopie der Seite im Hintergrundspeicher, weil sie zu einem früheren Zeitpunkt bereits einmal ausgelagert war.


to do

Im Laufe der Entwicklungsgeschichte von Betriebssystemen wurden eine ganze Reihe von Seitenersetzungsverfahren vorgeschlagen:

  • Optimaler Algorithmus
  • NRU
  • FIFO
  • Second Chance
  • Clock Page
  • LRU
  • NFU

Siehe Mandl 2013 Kap. 7.2.3, 7.2.4



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