Die virtuelle Adresse zur physischen Adresszuordnung in Computersystemen ist ein entscheidender Prozess, mit dem mehrere Prozesse gleichzeitig ausgeführt werden können, während sie anscheinend einen ausschließlichen Zugriff auf den gesamten Systemspeicher haben. Es wird durch eine Kombination aus Hardware- und Softwarekomponenten erreicht, vor allem die
MMU (Speicherverwaltungseinheit) und die
Seitentabelle . Hier ist eine Aufschlüsselung:
1. Virtuelle Adressen:
* Jeder Prozess erhält seinen eigenen privaten virtuellen Adressraum. Dieser Speicherplatz ist unabhängig von den virtuellen Adressräumen anderer Prozesse, was bedeutet, dass ein Prozess auf 0x1000 zugreifen kann, ohne dass ein anderer Prozess mit 0x1000 auch mit einem anderen Prozess in Konflikt steht.
* Dieser virtuelle Adressraum ist groß und überschreitet oft weit über den verfügbaren physischen RAM. Auf diese Weise können Prozesse mehr Speicher verwenden als physisch existiert.
2. Physische Adressen:
* Dies sind die tatsächlichen Adressen im physischen RAM. Die MMU übersetzt virtuelle Adressen in physische Adressen.
* Der physische Adressraum ist durch die im System installierte Menge an RAM begrenzt.
3. Die Speicherverwaltungseinheit (MMU):
* Die MMU ist eine Hardwarekomponente, die die entscheidende Aufgabe ausführt, virtuelle Adressen in physische Adressen zu übersetzen. Dies geschieht in Echtzeit, jedes Mal, wenn ein Prozess versucht, auf Speicher zuzugreifen.
* Es wird die Seitentabelle (unten beschrieben) verwendet, um die Übersetzung durchzuführen.
4. Seitentabellen:
* Seitentabellen sind Datenstrukturen, die sich im Speicher befinden, die die Zuordnung zwischen virtuellen Seiten und physischen Rahmen enthalten.
* Seiten: Der virtuelle Adressraum ist in Blöcke mit fester Größe unterteilt, die als Seiten bezeichnet werden. Eine typische Seitengröße beträgt 4 KB.
* Frames: Das physikalische Speicher ist in ähnlicher Weise in Blöcke mit fester Größe unterteilt, die als Frames bezeichnet werden, normalerweise die gleiche Größe wie Seiten.
* Die Seitentabelle fungiert im Wesentlichen als Nachschlagtabelle. Bei einer virtuellen Seitennummer wird die entsprechende physische Bildnummer zurückgegeben.
5. Der Übersetzungsprozess (vereinfacht):
1. virtuelle Adresssegmentierung: Die virtuelle Adresse ist in zwei Teile unterteilt:die virtuelle Seitennummer (VPN) und den Seitenversatz.
2. Seite Tabelle Lookup: Das VPN wird als Index in der Seitentabelle verwendet, um den entsprechenden Eintrag zu finden. Dieser Eintrag enthält die physische Bildnummer (PFN) und andere Informationen wie Zugriffsberechtigungen (lesen, schreiben, ausführen).
3. physische Adresskonstruktion: Das PFN wird mit dem Seitenversatz aus der ursprünglichen virtuellen Adresse kombiniert, um die endgültige physische Adresse zu erstellen.
4. Speicherzugriff: Die MMU verwendet dann diese physische Adresse, um auf den Speicherort zuzugreifen.
6. Multi-Level-Seitentabellen:
Um übermäßig große Seitentabellen zu vermeiden (was der Fall wäre, wenn eine einzelne Seitentabelle den gesamten virtuellen Adressraum zugeordnet hat), verwenden viele Systeme mehrstufe Seitentabellen. Dies schafft eine hierarchische Struktur, in der jede Ebene auf die nächste zeigt, was schließlich zur physischen Rahmenzahl führt. Dies spart Speicher und verbessert die Effizienz.
7. Übersetzungs -Lookaside -Puffer (TLB):
Der TLB ist ein Cache innerhalb der MMU, in dem kürzlich virtuelle bis physische Adressübersetzungen gespeichert sind. Dies beschleunigt den Übersetzungsprozess erheblich, da der Zugriff auf die TLB viel schneller ist als der Zugriff auf den Hauptspeicher, um die Seitentabelle nachzuschlagen. Wenn eine Übersetzung in der TLB (eine TLB -Fehlschlag) nicht gefunden wird, muss die MMU auf die Seitentabelle zugreifen, die deutlich langsamer ist.
8. Paging und Tausch:
* Paging: Wenn ein Prozess versucht, auf eine Seite zuzugreifen, die derzeit nicht in RAM (ein Seitenfehler) ist, lädt das Betriebssystem die erforderliche Seite vom Sekundärspeicher (Festplatte) in RAM.
* Tausch: Das Betriebssystem kann die virtuellen Adressräume der gesamten Prozesse im RAM und aus dem RAM austauschen, um den Speicher effizient zu verwalten.
Zusammenfassend: Die virtuelle Adresse zur physischen Adresszuordnung ist ein komplexer, aber wesentlicher Mechanismus, der ein effizientes Speichermanagement, den Schutz und die gleichzeitige Ausführung mehrerer Prozesse ermöglicht. Die MMU, die Seitentabellen und die TLB arbeiten zusammen, um diese Übersetzung nahtlos durchzuführen, sodass sie für die Anwendungen transparent ist.