5 SpeicherverwaltungVirtual Memory

"Mein Gedächtnis ist meistens auch nur virtuell…"

Virtual Memory

Auf einen Blick

Virtual Memory (VM): Jeder Prozess besitzt einen eigenen logischen Adressraum — für jeden Prozess gleich strukturiert, für andere nicht zugänglich, und in Größe/Lage unabhängig vom real vorhandenen RAM. Alle in Windows/Unix sichtbaren Adressen sind virtuelle Adressen.

Definition

Jeder Prozess hat einen eigenen, logischen Adressraum, der:

  • für jeden Prozess die gleiche logische Struktur besitzt,
  • für andere Prozesse a priori nicht zugänglich ist (Schutz!),
  • in Größe und Lage unabhängig vom faktischen RAM ist,
  • in seiner Größe durch die Adressbreite (32 oder 64 Bit) bestimmt ist.

Konsequenzen

  • Compiler, Assembler und Linker erzeugen nur virtuelle Adressen.
  • Eine Abbildung virtuell → physikalisch ist nötig → Page Table & MMU.
  • Der Schutz des Adressraums obliegt dieser Abbildung (und damit dem OS, Kernel- und User-Modus).
  • Das Ein-/Auslagern von Speicherbereichen wird grundsätzlich möglich (Ortsunabhängigkeit) → Page Faults.

Warum löst das die MM-Aufgaben?

Aufgabewie VM es löst
viele Prozesse gleichzeitigjeder hat seinen eigenen Adressraum
sehr großer Adressraumunabhängig vom realen RAM (bis zur Adressbreite)
Schutz vor Störungenfremde Adressräume sind nicht zugänglich
Physische Komponenten

Ein VM-System besteht aus dem physischen RAM (hier liegen die Page Tables), der MMU (mit TLB) und einem Auslagerungsbereich (Linux: Swap-Partition, Windows: pagefile.sys). Eine Page liegt entweder im RAM oder im Auslagerungsbereich.

Verwandte Notes

Segmente & Pages · Page Table & MMU · Page Faults · Speicherhierarchie · Kernel- und User-Modus

← Kapitelübersicht


⬅️ Speicherhierarchie · Segmente & Pages ➡️

Built with LogoFlowershow