Question 6
Warum ist es keine gute Idee, nur eine einzelne Page Table (pro Prozess) zu verwenden?
Ineffizienz bei großen Adressräumen
Bei modernen Systemen (z. B. mit 64-Bit-Adressierung) wäre eine einzige Page Table pro Prozess extrem groß, da sie für jeden möglichen virtuellen Seitenbereich einen Eintrag enthalten müsste – auch für nicht genutzte Adressbereiche.
Das würde:
-
viel Speicher verschwenden,
-
das Mapping verlangsamen,
-
und die Verwaltung erschweren.
Lösung
Moderne Systeme verwenden mehrstufige Page Tables (z. B. eine hierarchische Struktur wie beim x86-64 mit vier Ebenen), die nur Tabellen für genutzte Adressbereiche anlegen. Das spart Speicher und verbessert die Performance.
Beispiel
-
32-Bit-Architektur → Adressraum
-
Page-Größe:
-
Virtuelle Seitenadresse (VPA) = 20 Bit → Einträge in der Page Table
-
Jeder Page-Table-Eintrag (PTE) = 4 Byte →
Das bedeutet:
Jeder Prozess würde allein für seine Page Table mindestens 4 MB Speicher benötigen – selbst wenn er nur wenige Kilobyte an tatsächlichem Speicher braucht.
👉 Deshalb werden in der Praxis mehrstufige Page Tables verwendet, um Speicher effizienter zu nutzen und nur Tabellen für tatsächlich verwendete Bereiche anzulegen.