SBY

Speicherverwaltung

MMU, logische und physische Adressen, Kernel/User Land, Fragmentierung, Swapping, Paging, TLB und Segmentierung.

Speicherverwaltung

Programme müssen im Hauptspeicher liegen, um ausgeführt zu werden. Gleichzeitig dürfen Prozesse nicht beliebig auf Speicherbereiche anderer Prozesse zugreifen.

Die Speicherverwaltung sorgt dafür, dass Speicher verteilt, geschützt und effizient genutzt wird.

Logische und physische Adressen

Programme arbeiten mit logischen Adressen. Der echte RAM verwendet physische Adressen.

Die Übersetzung übernimmt die Memory Management Unit.

BegriffBedeutung
Logische AdresseAdresse aus Sicht des Programms.
Physische AdresseTatsächliche Adresse im Hauptspeicher.
MMUHardwareeinheit zur Adressübersetzung.

Diese Übersetzung ist zentral für Speicherschutz und virtuelle Speicherverwaltung.

Kernel Land und User Land

BereichBedeutung
Kernel LandPrivilegierter Bereich für Betriebssystemkern und Treiber.
User LandBereich für normale Anwendungen.

Normale Programme laufen im User Land. Für kritische Aktionen müssen sie über System Calls kontrolliert in den Kernel wechseln.

Statische Partitionierung

Bei statischer Partitionierung wird Speicher in feste Bereiche aufgeteilt.

Vorteile:

  • einfach
  • vorhersehbar
  • leicht zu verwalten

Nachteile:

  • interne Fragmentierung
  • begrenzte Anzahl Prozesse
  • unflexible Speicherverteilung

Interne Fragmentierung entsteht, wenn ein Prozess weniger Speicher braucht als seine zugewiesene Partition.

Dynamische Partitionierung

Bei dynamischer Partitionierung wird Speicher passend zur Prozessgröße vergeben.

Vorteile:

  • keine feste Partitionsgröße
  • bessere Ausnutzung bei passenden Prozessen

Nachteile:

  • externe Fragmentierung
  • freie Speicherbereiche können ungünstig verteilt sein

Externe Fragmentierung bedeutet, dass genug freier Speicher vorhanden wäre, aber nicht in einem zusammenhängenden Block.

Verwaltung freier Speicherbereiche

Freier Speicher kann mit Listen verwaltet werden.

Eine bekannte Methode ist das Buddy-System. Dabei wird Speicher in Blöcke aufgeteilt, die bei Bedarf geteilt und später wieder zusammengeführt werden können.

Zuweisungsstrategien

StrategieIdee
First FitNimmt den ersten passenden freien Block.
Next FitSucht ab der letzten Fundstelle weiter.
Best FitNimmt den kleinsten passenden freien Block.

Jede Strategie hat andere Auswirkungen auf Geschwindigkeit und Fragmentierung.

Swapping

Beim Swapping werden Prozesse oder Speicherbereiche aus dem Hauptspeicher auf sekundären Speicher ausgelagert.

Dadurch kann mehr Speicher genutzt werden, als physisch vorhanden ist. Der Preis ist Geschwindigkeit, weil Massenspeicher viel langsamer als RAM ist.

Zusätzliche Zustände können entstehen:

  • Ready Suspended
  • Blocked Suspended

Paging

Beim Paging wird virtueller Speicher in Seiten und physischer Speicher in Frames geteilt.

Eine logische Adresse besteht aus:

  • Seitennummer
  • Offset innerhalb der Seite

Die Seitentabelle ordnet virtuelle Seiten physischen Frames zu.

Klassische Seitengröße: 4 KB.

TLB

Der Translation Lookaside Buffer speichert häufig verwendete Seitentabelleneinträge.

Ohne TLB müsste die CPU sehr oft langsamere Tabellen im Speicher nachschlagen. Der TLB beschleunigt die Adressübersetzung erheblich.

Mehrstufige Seitentabellen

Große virtuelle Adressräume würden riesige Seitentabellen erzeugen. Mehrstufige Seitentabellen lösen dieses Problem, indem nur benötigte Teile der Tabelle tatsächlich angelegt werden.

Segmentierung

Bei Segmentierung wird Speicher logisch in Bereiche gegliedert.

Typische Segmente:

  • Code
  • Daten
  • Stack

Ein Segment wird durch Startadresse, Größe und Eigenschaften beschrieben. Im Gegensatz zu Paging ist Segmentierung stärker aus Programmsicht sichtbar.

CPU-Modi

CPUs unterstützen unterschiedliche Betriebsmodi.

Beispiele:

  • Real Mode
  • Protected Mode
  • User Mode
  • Kernel Mode

Im Protected Mode können moderne Schutzmechanismen wie Speicherschutz und privilegierte Ausführung sauber umgesetzt werden.

Merksatz

Speicherverwaltung ist die Grundlage für Isolation. Ohne Adressübersetzung und Schutz könnte jeder Prozess fremden Speicher lesen oder verändern.

Zuletzt aktualisiert: 6. Juni 2026