Heim > Artikel > Betrieb und Instandhaltung > Warum braucht Linux MMU?
Weil mmu zur Unterstützung der virtuellen Speicherverwaltung verwendet werden kann; mmu ist die Abkürzung für „Memory Management Unit“, die Steuerschaltung zur Verwaltung des virtuellen Speichers und des physischen Speichers im Zentralprozessor, die auch für die virtuelle Speicherverwaltung verantwortlich ist Adresszuordnung Stellt Hardwaremechanismen zum Gewähren des Speicherzugriffs auf physische Adressen bereit.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.
Denn moderne Betriebssysteme verwenden im Allgemeinen einen Mechanismus zur virtuellen Speicherverwaltung (Virtual Memory Management), der Unterstützung durch die MMU (Memory Management Unit) im Prozessor erfordert.
MMU (Memory Management Unit): Speicherverwaltungseinheit, die in der Zentraleinheit (CPU) zur Verwaltung des virtuellen Speichers und des physischen Speichers verwendet wird. Sie ist auch für die Zuordnung virtueller Adressen zu physischen Adressen und die Bereitstellung von Hardwaremechanismen verantwortlich für den Speicher.
Die Hauptfunktion der Speicherverwaltungseinheit (MMU) ist die Umwandlung virtueller Adressen (virtuelle Speicheradressen) in physische Adressen (physikalische Adressen). Darüber hinaus können Speicherschutz, Cache-Steuerung, Busarbitrierung und Bankumschaltung implementiert werden.
Arbeitsmechanismus
Die CPU übergibt die angeforderte virtuelle Adresse an die MMU. Anschließend sucht die MMU zunächst nach der Übersetzungsbeziehung im Cache-TLB (Translation Lookaside Buffer) und prüft, ob die entsprechende physische Adresse vorhanden ist Wenn es nicht gefunden wird, wird es in der Adressübersetzungstabelle (Übersetzungstabelle) gesucht und berechnet.
Virtuelle Adresse
Die moderne Speicherverwaltungseinheit unterteilt den virtuellen Adressraum (den vom Prozessor verwendeten Adressbereich) in Seiten. Die Seitengröße beträgt 2 hoch n-tel, normalerweise einige KB. Die virtuelle Adresse ist also in zwei Teile unterteilt: virtuelle Seitennummer und Offset.
Seitentabelleneintrag (Seitentabelleneintrag)
Der Eintrag, der die in der Seitentabelle gefundene physische Seitentabellennummer aus der obigen virtuellen Seitennummer speichert, ist der Seitentabelleneintrag (PTE). PTE belegt im Allgemeinen eine Länge von 1 Wort und enthält nicht nur die physische Seitennummer, sondern auch das Rewrite-Flag-Bit (Dirty Bit), das Zugriffskontrollbit (Accessed Bit) und den Prozesstyp, der das Lesen und Schreiben ermöglicht (Benutzer-/Supervisor-Modus). , ob zwischengespeichert und zugeordnet werden kann (die letzten beiden Ziffern von PTE).
Mapping
Mapping-Methode
Es gibt zwei Mapping-Methoden: Segment-Mapping und Seiten-Mapping. Die Segmentzuordnung verwendet nur die Seitentabelle der ersten Ebene, und die Seitenzuordnung verwendet die Seitentabelle der ersten Ebene und die Seitentabelle der zweiten Ebene.
Mapping-Granularität
Es gibt zwei Mapping-Granularitäten für die Segmentzuordnung, 1M-Abschnitt und 16M-Supersection; Zu den Mapping-Granularitäten für die Seitenzuordnung gehören 4K-Kleinseite, 64K-Großseite und die veraltete 1K-Kleinseite.
Empfohlenes Lernen: Linux-Video-Tutorial
Das obige ist der detaillierte Inhalt vonWarum braucht Linux MMU?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!