Haftungsausschluss: Diese Frage bezieht sich auf meine Betriebssystemklasse. Es ist jedoch keine spezielle Hausaufgabenfrage. Ich versuche nur zu verstehen.Bedarfspaging-Austauschrahmen
Hier ist, was ich denke, dass ich über Nachfrage Paging bis jetzt weiß. Jeder Prozess hat seine eigene Paging-Tabelle. Diese Tabelle enthält einen Index der logischen Adresse, ihre entsprechende physikalische Adresse und ein gültiges/ungültiges Bit, das anzeigt, ob die Seite gerade in den Hauptspeicher geladen ist.
Wenn auf eine Seite zugegriffen wird, wenn das Gültig/Ungültig-Bit auf Gültig gesetzt ist, wird einfach über den logischen Adresseintrag in der Tabelle auf die Seite im Hauptspeicher zugegriffen. Wenn die Seite nicht im physischen Speicher enthalten ist, wird ein Seitenfehler generiert. Dies bewirkt, dass das Programm versucht, die Seite in den Speicher zu laden.
Das System prüft zuerst, ob die angeforderte Adresse gültig ist. Wenn nicht, wird der Prozess beendet. Wenn die Adresse gültig ist, prüft das System auf freie Frames. Wenn ein freier Rahmen gefunden wird, lädt das System die angeforderten Daten von der Platte und platziert sie in dem freien Rahmen. Das Gültig/Ungültig-Bit wird in der Paging-Tabelle auf gültig gesetzt, die logische Adresse wird auf den zuvor freien Rahmen gesetzt, und das Programm kann weiter ausgeführt werden.
Wenn keine freien Frames vorhanden sind, muss das System einen aktuell verwendeten Frame austauschen und die angeforderten Daten in den Frame einfügen. Das System ermittelt einen Algorithmus wie LRU, MRU usw. um festzustellen, welche Seite ausgelagert werden soll. Das System tauscht die alte Seite aus, lädt die neue Seite und gibt dann die Kontrolle an den Prozess zurück.
Hier ist meine Frage: Wenn das Vollbild ausgelagert wird, wie wird das gültige/ungültige Bit einer Paging-Tabelle, die auf diesen Rahmen zugreift, gesetzt? Das heißt, wie weiß das System, dass die Paging-Tabelle eines Prozesses auf den Rahmen zugreift, der ausgelagert wird?
Hier ist ein Beispiel. Angenommen, es gibt zwei Verfahren jeweils mit Paging-Tabellen der Größe 2 und einem physikalischen Speicher der Größe 2. die Paging-Tabellen der Prozesse lassen sich wie folgt:
Prozess ein virtuelles Speicher:
Address Contents
0 'A'
1 'B'
Verfahren B virtueller Speicher:
Address Contents
0 'C'
1 'D'
Verfahren A Paging-Tabelle:
Logical Physical Valid/Invalid
0 0 Valid
1 0 Invalid
Verfahren B Paging-Tabelle:
Logical Physical Valid/Invalid
0 1 Valid
1 0 Invalid
Hauptspeicher:
Address Contents
0 'A'
1 'C'
nun ein suppose Prozess versucht, seine logische Adresse von B. den Zugriff auf das System-Swaps aus dem Inhalt der Hauptspeicheradresse 1 und Swaps "D". Wie kann das System das gültige/ungültige Bit für die logische Adresse 0 in der B-Paging-Tabelle von Process auf ungültig setzen?
Ehrfürchtig. Das musste ich wissen. Danke für die Hilfe. – LandonSchropp