Unterschied Zwischen Page Table und Page Directory
Ich habe gehört, dass der Begriff Adressraum oft in Mikroprozessoren und Mikrocontrollern Paradigma. Ich verstehe, dass eine Adresse wird verwendet, um auf einen bestimmten block von Speicher in den physikalischen Speicher(Grundschule).
Wenn ich im Recht bin und der Adressraum ist der super-Satz von solchen Adressen. Richtig?
Durch die Verwendung virtueller Speicher/paging-wir sind die Erweiterung des Adressraums über die sekundäre Lagerung.
In diesem Paradigma, was genau ist eine Seitentabelle, page table Eintrag und Seite Verzeichnis? Ich verstehe, dass die erste p.Speicher wird segmentiert und logisch, und diese Segmente werden in Seiten unterteilt. Also, was genau ist eine page Tabelle? Eine Tabelle mit Seiten? Und was ist eine page-directory eine super Tabelle von Page-Tabellen?
- Siehe osdev.org oder die offizielle intel-Handbuch.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der x86-Architektur, page directories und page tables zusammen sorgt für die Zuordnung zwischen virtuellen Adressen (Speicher-Adressen von Anwendungen verwendet) und physikalische Adressen (Reale Schauplätze in der physischen Speicher-hardware).
Einen Seite ist einfach ein zusammenhängender Speicherblock. x86 (32-bit) unterstützt, in 3 Größen, Seiten: 4 MB, 2 MB, und 4 KB an, wobei letztere am häufigsten verwendet in den mainstream-Betriebssysteme. Ein Seite Tabelle ist ein array von 1024 * 32-bit-Einträgen (bequem Einbau in eine einzige 4-KB-Seite). Jeder Eintrag verweist auf die physikalische Adresse einer Seite. Da eine einzelne page table ist nicht in der Lage zur Darstellung der gesamten Adressraum auf eigene (1024 Einträgen * 4KB = nur 22 bit Adressraum), benötigen wir eine zweite Seite: Tabelle: ein Seite Verzeichnis. Eine page-directory besteht aus 1024 * 32-bit-Einträgen (wieder passend in eine einzelne Seite), jedes zeigt auf eine page table. Wir können sehen, dass jetzt 1024 * 1024 * 4 KB = 32-bit und mit diesem 3-Ebenen-Struktur sind wir in der Lage, um die Karte der gesamten 4 GB virtuellen Adressraum.
Wenn die CPU gefragt ist, um den Zugriff auf eine virtuelle Adresse verwendet, die 10 höchsten bits (31:22) index in die page-directory-Tabelle (die base-Adresse ist gespeichert in einem besonderen register). Die nächsten 10 höchsten bits (21:12) werden verwendet, um den index in der Seitentabelle verweist die page-directory-Eintrag. Die niedrigsten 12 bits (11:0) sind schließlich verwendet, um den index ein byte in die Seite, zeigte auf der page table Eintrag.
In anderen Systemen kann es mehr oder weniger Stufen der page table erforderlich, abhängig von der Größe des virtuellen Adressraums und die Seitengrößen unterstützt. Zum Beispiel, x86-mit 4MB-Seiten muss nur eine einzige Seite-Verzeichnis. Im 64-bit Modus bei 4-Kb-Seiten, ein 4-Niveau-system eingesetzt: ein Seite mapping-Stufe 4 Tabelle enthält Einträge, die auf einer der vielen Seiten-Verzeichnissen.
Den Intel Architectures Developer ' s Manual hat viel mehr Informationen über das Thema, besonders in den Kapiteln 3 und 4.