Skip to content

Einführung Speicherverwaltung


🔍 Grundlagen der Speicher-Virtualisierung

  • Virtuelle Adressen:
    • Jede Adresse, die ein Benutzerprogramm generiert, ist virtuell.
    • Das OS sorgt für die Illusion eines großen, privaten Speichers für jedes Programm.
    • Die Hardware hilft dabei, virtuelle Adressen in physische Adressen umzuwandeln.

🎯 Warum benötigt das OS Speicher-Virtualisierung?

1️⃣ Vereinfachung für den Programmierer:

  • Jedes Programm erhält einen großen, zusammenhängenden Adressraum.
  • Programmierer müssen sich keine Sorgen machen, wo Daten gespeichert werden.
  • Ohne Virtualisierung wäre der Speicher begrenzt und unorganisiert.

2️⃣ Isolation und Schutz:

  • Programme sollten nicht auf den Speicher anderer Programme zugreifen können.
  • Verhindert ungewollte Überschreibungen oder bösartige Manipulationen.
  • Schutzmechanismen sorgen für eine sichere Speicherverwaltung.

💭 Humorvolle Interaktion zwischen Professor und Student

  • Student macht einen sarkastischen Kommentar:
    • "Es wäre ja praktisch, wenn man das Speicherlimit von Programmen anderer Leute manipulieren könnte."
  • Professor schlägt eine Ethik-Vorlesung für den Studenten vor.

🔗 O-STEP - A Dialogue on Memory Virtualization

🔑 Fazit: Schlüsselkonzepte der Speicher-Virtualisierung

Jede Benutzeradresse ist virtuell, die OS + Hardware wandeln sie um.
Die Illusion von großem, zusammenhängendem Speicher erleichtert das Programmieren.
Schutzmechanismen verhindern unerlaubte Speicherzugriffe zwischen Prozessen.
Das OS beendet fehlerhafte Prozesse, um Systemstabilität zu gewährleisten.

🏛️ Aufbau eines Adressraums

Ein typischer Adressraum enthält folgende Bereiche:

1️⃣ Code-Segment

  • Speichert den ausführbaren Code eines Programms.
  • Bleibt während der Laufzeit unverändert.
  • Liegt am Anfang des Adressraums.

2️⃣ Heap-Segment

  • Speichert dynamisch allokierte Daten (z. B. malloc() in C, new in Java).
  • Wächst nach unten im Speicher.

3️⃣ Stack-Segment

  • Speichert lokale Variablen, Funktionsaufrufe, Parameter und Rückgabewerte.
  • Wächst nach oben im Speicher.

🔹 Heap und Stack wachsen dynamisch aufeinander zu, um den Speicher effizient zu nutzen.

Adress Space.svg