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-Architektur232=4GB2^{32} = 4\,\text{GB} Adressraum

  • Page-Größe: 212=4KB2^{12} = 4\,\text{KB}

  • Virtuelle Seitenadresse (VPA) = 20 Bit → 220=1.048.5762^{20} = 1.048.576 Einträge in der Page Table

  • Jeder Page-Table-Eintrag (PTE) = 4 Byte → 4,194,304Byte=4MB4{,}194{,}304\,\text{Byte} = 4\,\text{MB}

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.