EMZETT.
Login

Virtueller Speicher und Paging

Kurz: Jeder Prozess sieht einen eigenen, zusammenhängenden Adressraum. Das Betriebssystem bildet diese virtuellen Adressen über Seitentabellen auf den echten Arbeitsspeicher ab und lagert bei Bedarf Seiten auf die Platte aus.

Genauer: Der Speicher wird in Seiten (meist 4 KB) geteilt. Die MMU der CPU übersetzt bei jedem Zugriff virtuelle in physische Adressen. Ein TLB (Cache für Übersetzungen) macht das schnell. Fehlt eine Seite im RAM, löst die CPU einen Seitenfehler (Page Fault) aus, und das Betriebssystem lädt sie nach.

Im Detail

  • Isolation: Prozesse können fremden Speicher nicht lesen.
  • Seitentabellen: Mehrstufig (z. B. 4 Ebenen bei x86-64), damit sie klein bleiben.
  • Swapping/Auslagern: Selten genutzte Seiten wandern auf Platte. Zu viel davon heißt Thrashing, das System kriecht.
  • Copy-on-Write: fork() teilt Seiten, kopiert erst bei Schreibzugriff.
  • Memory-mapped Files: Dateien wie Speicher einblenden.
  • Overcommit: Mehr zusagen, als physisch da ist (Linux), OOM-Killer als Notbremse.
  • Große Seiten (Huge Pages): Weniger TLB-Fehler bei großen Datenmengen.

Siehe auch: Prozess-Scheduling, Speicherhierarchie und Cache-Lines