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
M-Bit beim Einlagern

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.