Angenommen, es gibt zwei Prozesse A und B. B muss einen neuen Frame in seine Seitentabelle einfügen. Da keine Frames frei sind, müssen wir einen Frame austauschen und den Frame von B von der Festplatte holen. Angenommen, das Betriebssystem folgt dem globalen Seitenersatzschema und wählt einen Rahmen aus, in dem wir die Daten von A haben. Um diesen Rahmen zu tauschen, müssen wir nun in der Seitentabelle von A ändern, dass der entsprechende Rahmen ungültig ist. Um das im Allgemeinen zu tun, müssen wir wissen, welche Daten des Prozesses in einem bestimmten Frame im Speicher vorhanden sind, so dass wir zu seiner Seitentabelle gehen und das Bit auf ungültig ändern können. Wie wird das erreicht? Speichert jeder Frame im Speicher auch die Prozess-ID des entsprechenden Prozesses, dessen Daten er hat?Wie wird eine Seite beim globalen Seitenaustausch ungültig?
0
A
Antwort
1
Page Table ist nur die von der Prozessorhardware benötigte Einrichtung. Darüber hinaus führt das Betriebssystem seine eigenen Datenbanken im Speicher, die jeden physischen Seitenrahmen verfolgen. Zum Beispiel gibt es in Windows eine Page Frame Database (PFN), die den Status jeder physischen Seite auflistet, wie Gültig, Standby, Modifiziert, Frei usw. Und zur Beschreibung der Teilmenge der virtuellen Seiten, die sich im physischen Speicher befinden, gibt es a Arbeitssatzliste.
Windows: Wenn Sie mehr über die Details der Speicherverwaltung müssen wissen, schlage ich dieses Buch http://www.amazon.com/Windows-Internals-Part-Developer-Reference/dp/0735665877/ref=sr_1_3?ie=UTF8&qid=1463848711&sr=8-3&keywords=windows+internals
eine physikalische Speicherrahmen nicht direkt mit einer Prozess-ID zugeordnet ist. Als> 1 kann der Prozess den gleichen physischen Speicherframe in seinem virtuellen Adressraum teilen. – JavaMan