[gesichtete Version] | [gesichtete Version] |
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 81: | Zeile 81: | ||
</p> | </p> | ||
<p> | <p> | ||
* '''Klasse 1:''' Eingelagerte Seiten mit R=0 und M=0.<br />Von allen in dieser Klasse befindlichen Seiten wird eine zur Ersetzung bestimmt. Wegen M=0 muss diese Seite nicht im Hintergrundspeicher gesichert werden, der aufgetretene Seitenfehler kann also möglichst schnell behoben werden. | * '''Klasse 1:''' Eingelagerte Seiten mit R=0 und M=0.<br />Von allen in dieser Klasse befindlichen Seiten wird eine zur Ersetzung bestimmt. Wegen M=0 muss diese Seite nicht im Hintergrundspeicher gesichert werden, der aufgetretene Seitenfehler kann also möglichst schnell behoben werden. Dies ist der beste Fall, der eintreten kann. | ||
</p> | </p> | ||
Zeile 93: | Zeile 93: | ||
<p> | <p> | ||
* '''Klasse 4:''' Eingelagerte Seiten mit R=1 und M=1.<br />Sofern in den Klassen 1, 2 und 3 keine Seiten vorhanden sind, wird eine Seite aus Klasse 4 zur Auslagerung bestimmt. Wegen M=1 muss diese Seite in den Hintergrundspeicher geschrieben werden. Zusätzlich lässt R=1 erwarten, dass die Seite in (naher) Zukunft wieder benötigt wird. Dieser Fall ist der | * '''Klasse 4:''' Eingelagerte Seiten mit R=1 und M=1.<br />Sofern in den Klassen 1, 2 und 3 keine Seiten vorhanden sind, wird eine Seite aus Klasse 4 zur Auslagerung bestimmt. Wegen M=1 muss diese Seite in den Hintergrundspeicher geschrieben werden. Zusätzlich lässt R=1 erwarten, dass die Seite in (naher) Zukunft wieder benötigt wird. Dieser Fall ist der schlechteste Fall, der eintreten kann. | ||
</p> | </p> | ||
{{#index:NRU, Seitenersetzungsalgorithmus|Not Recently Used Seitenersetzungsalgorithmus}} Der Not Recently Used Seitenersetzungsalgorithmus, kurz NRU, ersetzt immer eine Seite, auf die in letzter Zeit nicht zugegriffen wurde.
Die Idee dahinter ist: Wenn in letzter Zeit nicht auf die Seite zugegriffen wurde, dann wird vermutlich auch in (naher) Zukunft nicht darauf zugegriffen werden müssen.
Um dieses Verfahren zu implementieren, müssen zwei Fragen oder Probleme gelöst werden:
Auf die erste Frage gibt es eine ganz einfache Antwort: Mit Hilfe des R-Bits.
In den Seitentabellen wird eine zusätzliche Spalte eingeführt, siehe Abbildung unten. Für jede einzelne Seite (d.h. in jedem Seitentabelleneintrag) wird mit Hilfe eines einzelnen Bits festgehalten, ob die betreffende Seite referenziert wurde.
{{#index:Referenziert-Bit|Seitentabelleneintrag, Referenziert-Bit|R-Bit|Seitentabelleneintrag, R-Bit}} Man spricht hier vom sogenannten Referenziert-Bit, oder kurz vom R-Bit.
Es liegt auf der Hand, dass das R-Bit (genau wie das M-Bit) beim Einlagern einer virtuellen Seite in einen Seitenrahmen im betreffenden Seitentabelleneintrag mit 0 initialisiert wird.
Die MMU nimmt später bei der (erfolgreichen) Umrechnung einer virtuellen in eine physikalische Adresse ein Setzen des R-Bits im betreffenden Eintrag der Seitentabelle vor.
Sobald eine Entscheidung bzgl. der zu ersetzenden Seite herbeigeführt werden muss, kategorisiert NRU alle in Seitenrahmen eingelagerte virtuelle Seiten in vier Klassen:
Könnte es vorkommen, dass in allen vier Klassen keine Seiten vorhanden sind? Begründe deine Meinung.
Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png