Die Berechnung einer physischen Adresse aus einer logischen Adresse erfordert eine
Speicherverwaltungseinheit (MMU) und Kenntnis der Seitentabelle (en). Der Prozess umfasst mehrere Schritte:
1. Segmentierung (falls zutreffend):
* Einige Systeme verwenden die Segmentierung neben Paging. Wenn eine Segmentierung verwendet wird, wird die logische Adresse zuerst in eine Segmentnummer und einen Offset in diesem Segment unterteilt. Die Segmentnummer wird dann verwendet, um den entsprechenden Segmentdeskriptor in der Segmenttabelle zu lokalisieren. Der Segmentdeskriptor enthält Informationen wie die Basisadresse des Segments im physischen Speicher und seine Grenze (Größe).
* Wenn die Segmentnummer ungültig ist oder der Offset über die Segmentgrenze hinausgeht, erfolgt ein Segmentierungsfehler.
2. Paging:
* Ob eine Segmentierung verwendet wird oder nicht, ist Paging fast immer an modernen Systemen beteiligt. Die logische Adresse (oder der Offset aus dem vorherigen Segmentierungsschritt) ist in eine Seitenzahl und einen Seitenversatz unterteilt.
* Die Seite Seitenzahl wird als Index in eine -Seiten -Tabelle verwendet . Diese Tabelle bildet virtuelle Seitenzahlen zu physischen Frame -Nummern. Jeder Eintrag in der Seitentabelle enthält die physische Bildnummer (oder einen Zeiger auf eine Seitentabelle auf niedrigerer Ebene in mehrstufiger Paging), in der sich die entsprechende Seite im physischen Speicher befindet.
* Multi-Level-Paging: Um sehr große Adressräume effizient zu verwalten, verwenden Systeme häufig mehrstufige Seitentabellen (z. B. zweistufige, dreistufige usw.). Dies vermeidet eine einzelne gigantische Seitentabelle. In diesem Fall wird die Seitenzahl weiter unterteilt, um nacheinander niedrigere Ebenen von Seitentabellen zu indexieren, bis die endgültige physische Bildnummer gefunden wird. Jeder Eintrag in einer Seite mit höherer Ebene zeigt auf die nächste Stufe.
* Wenn ein Eintragstabelleneintrag nicht vorhanden ist (Seitenfehler), muss das Betriebssystem die erforderliche Seite aus dem Sekundärspeicher (z. B. Festplatte) in den Hauptspeicher laden. Dies beinhaltet das Aussetzen des aktuellen Vorgangs.
3. Physikalische Adressberechnung:
* Sobald die physische Rahmennummer aus der Seite der Seitentabelle (en) erhalten wurde, ist die physikalische Adresse wird berechnet, indem die physikalische Bildnummer verkettet wird und der -Seiten -Offset . Der Seitenversatz bleibt während des gesamten Übersetzungsprozesses unverändert.
Formel (für einstufiges Paging vereinfacht):
`Physische Adresse =(Seitenzahl * Seitengröße) + Seite Offset`
Wo:
* Seitenzahl: Aus der logischen Adresse erhalten.
* Seitengröße: Eine systemdefinierte Konstante (z. B. 4KB).
* Seitenversetzt: Aus der logischen Adresse erhalten.
Zusammenfassend: Die MMU verwendet die logische Adresse und die Seitentabellen, um Adressübersetzung durchzuführen. Mit dem Prozess werden Einträge in den Seitentabellen nachgeschlagen, um die physische Bildnummer zu finden, die der logischen Seitennummer entspricht, und diese dann mit dem Seitenversatz zu kombinieren, um die endgültige physische Adresse zu erhalten. Die Komplexität nimmt mit der Verwendung von Segmentierung und mehrstufiger Paging zu. Das Betriebssystem spielt eine entscheidende Rolle bei der Verwaltung der Seitentabellen und der Handhabungs Seitenfehler.