WikiDer > Speicherverwaltungseinheit
Das Speicherverwaltungseinheit (oder einfach MMU) ist eine Hardwarekomponente im Computer, die für die LaufzeitZuordnung von virtuellen zu physischen Speicheradressen. Darüber hinaus übernimmt es in einigen Architekturen erweiterte Aufgaben wie Speicherschutz, Fragmentierung usw.
Der Prozessor verwendet einen virtuellen Adressraum, der in sogenannte Pages unterteilt ist, die jeweils 2nein groß sein (einige Kilobyte).
Das Anwenderprogramm sieht nie die physikalischen Adressen, d. h. das Programm arbeitet mit logisch Adressen. Die MMU wandelt logische Adressen in physikalische Adressen um und umgekehrt.
Das Konzept eines logischen Adressraums, der an einen physischen Adressraum gebunden ist, ist in einem guten Speicherverwaltungssystem wichtig.
Unterstützt wird die MMU durch einen speziellen, kleinen und schnellen Hardware-Cache, den Übersetzungs-Look-Aside-Puffer (TLB). Der TLB ist mit einem assoziativen Hochgeschwindigkeitsspeicher ausgestattet. Die MMU enthält eine Seitentabelle, die entsprechend der Seitennummer indiziert ist. Jeder Seitentabelleneintrag (PTE) zeigt die physische Seitennummer entsprechend der virtuellen an. Dies ist mit dem fusioniert Seitenversatz um die vollständige physische Adresse zu erhalten.
Einer bestimmten virtuellen Seite ist möglicherweise kein Speicher zugeordnet. In diesem Fall wird die MMU Seitenfehler an die senden Zentralprozessor. Es Betriebssystem wird dann versuchen, eine freie Seite im RAMSpeicher und richten einen neuen Seitentabelleneintrag ein, um ihn der angeforderten virtuellen Adresse zuzuordnen. Wenn kein freier RAM verfügbar ist, wird ein Ersatzalgorithmus (auch bekannt als Paging).
Die MMU wird auch verwendet, um Benutzerprozesse vor dem Betriebssystem und die Abschirmung von Benutzerprozessen voneinander. Üblicherweise wird hierfür ein Relocation- und Limit-Register verwendet. Das Relocation-Register enthält den Wert der niedrigsten physikalischen Adresse; das Limit-Register enthält die Folge von logischen Adressen. Beim Relocation- und Limit-Register muss jede logische Adresse niedriger sein als das Limit-Register; die MMU bildet die logische Adresse dynamisch ab, indem sie den Wert im Relocation-Register addiert. Diese Adresse wird dann an den Speicher weitergeleitet. Das Betriebssystem übergibt die Grenzwertregister an die Anwenderprogramme. Mit anderen Worten, es weist jedem Programm seinen eigenen virtuellen Adressraum zu.
Dadurch wird verhindert, dass Benutzerprozesse in den Speicher des anderen schreiben. Wenn dies trotzdem versucht wird, wird es einen geben Kernel Treppe Platz.
Die MMU löst auch das Problem der Speicherfragmentierung. Fragmentierung tritt auf, weil verschiedene Blöcke zugewiesen und wieder freigegeben werden und somit freie Blöcke über den gesamten Speicher fragmentiert werden. Beim virtuellen Speicher scheint der zugewiesene Speicher ein zusammenhängender Block zu sein, obwohl er in Wirklichkeit verstreut sein kann.
Quellen
- http://www.cacs.louisiana.edu/~mgr/404/burks/foldoc/26/72.htm (archiviert auf archive.org)
- Betriebssysteme mit Java - 2004 - A. Silberschatz, et al.