3.3.2.2.2 Das Modifiziert-Bit

[unmarkierte Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
Zeile 46: Zeile 46:
<p>
<p>
<loop_area type="task">
<loop_area type="task">
<loop_task title="M_Bit beim Einlagern">
<loop_task title="M-Bit beim Einlagern">
<p>
<p>
Eine Seite wird in einen freien Seitenrahmen eingelagert. Das Betriebssystem aktualisiert dann den zugehörigen Seitentabelleneintrag.
Eine Seite wird in einen freien Seitenrahmen eingelagert. Die Speicherverwaltung des Betriebssystems aktualisiert dann den zugehörigen Seitentabelleneintrag.
</p>
</p>
<p>
<p>
Welchen Wert schreibt das Betriebssystem in das Feld mit dem M-Bit dieses Seitentabelleneintrags?
Welchen Wert schreibt die Speicherverwaltung in das Feld mit dem M-Bit dieses Seitentabelleneintrags?
</p>
</p>
</loop_task>
</loop_task>
Zeile 58: Zeile 58:


<br />
<br />
== Setzen des M-Bits ==
<p>
<p>
Die MMU nimmt bei der (erfolgreichen) Umrechnung einer virtuellen in eine physikalische Adresse ein Setzen des Bits im betreffenden Eintrag der Seitentabelle vor, sofern ein schreibender Zugriff auf die betreffende Speicherzelle erfolgen soll.
Die MMU nimmt bei der (erfolgreichen) Umrechnung einer virtuellen in eine physikalische Adresse ein Setzen des Bits im betreffenden Eintrag der Seitentabelle vor, sofern ein schreibender Zugriff auf die betreffende Speicherzelle erfolgen soll.

Version vom 7. Februar 2015, 13:18 Uhr

Das Modifiziert-Bit

Es liegt auf der Hand, dass modifizierte Seiten in ihrem Seitenrahmen nicht einfach ersetzt werden dürfen, bevor sie nicht im Hintergrundspeicher gesichert wurden. Ihre Inhalte wären andernfalls verloren, was negative Auswirkungen auf den betreffenden Prozess nach sich ziehen dürfte. Insbesondere könnten sie zu einem späteren Zeitpunkt nicht wieder eingelagert werden.


Frage

Wie kann das Betriebssystem aber feststellen, ob die Inhalte einer derzeit noch eingelagerten Seite modifiziert wurden, und so eine Auslagerung vor dem Ersetzen erforderlich wird?

Es gibt dafür eine ganz einfache Lösung: Das M-Bit.


Eine Spalte voller M-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 verändert wurde.

Man spricht hier vom sogenannten Modifiziert-Bit, oder kurz vom M-Bit (in einigen Quellen ist auch vom Dirty-Bit die Rede).

  • Das M-Bit ist gesetzt, also 1:
    Der Inhalt der zugehörigen Seite wurde modifiziert.

  • Das M-Bit ist nicht gesetzt, also 0:
    Der Inhalt der zugehörigen Seite wurde nicht modifiziert.


Seitentabelle-M.JPG


Aufgabe 1

Aufgabe

Eine Seite wird in einen freien Seitenrahmen eingelagert. Die Speicherverwaltung des Betriebssystems aktualisiert dann den zugehörigen Seitentabelleneintrag.

Welchen Wert schreibt die Speicherverwaltung in das Feld mit dem M-Bit dieses Seitentabelleneintrags?


Setzen des M-Bits

Die MMU nimmt bei der (erfolgreichen) Umrechnung einer virtuellen in eine physikalische Adresse ein Setzen des Bits im betreffenden Eintrag der Seitentabelle vor, sofern ein schreibender Zugriff auf die betreffende Speicherzelle erfolgen soll.


Wichtig

Ist das M-Bit einer zu ersetzenden Seite gesetzt (also gleich 1), so muss der Inhalt dieser Seite aus dem Seitenrahmen in den Hintergrundspeicher geschrieben werden.