zusammenfassungen/Writerside/topics/BS/13_Speicherverwaltung.md
David Schirrmeister 714b53e396 update
2024-07-01 17:45:48 +02:00

3.4 KiB

Speicherverwaltung

Speicherhierarchie

Registers

  • schnellste und kleinste Form des Speichers
    • direkt in Prozessor
  • Speicherung temporärer Daten und Zwischenergebnisse

Cache

  • kleinerer, schnellerer Speicher
  • zwischen Register und RAM

Hauptspeicher (RAM)

  • physischer Speicher
  • Prozessor kann direkt zugreifen

Virtueller Speicher

  • langsamerer Speicher
  • Erweiterung des RAMs

Speicheradressierung

  • Prozess, durch den ein Computer auf den physischen/virtuellen Speicher zugreift
Physische Adressierung Logische Adressierung
direkter Zugriff auf bestimmten Speicherort im physischen RAM Adresse von Prozess generiert
physische Adresse = tatsächliche Adresse des Speicherorts wird später in physische Adresse umgewandelt
Virtuelle Adressierung

Speicherpartitionierung

  • Aufteilung des physischen Speichers in logische Abschnitte
    • können von verschiedenen Teilen des Systems genutzt werden
  • Mögliche Zwecke:
    • Betriebssystemcode
    • Anwendungsdaten
    • Temporäre Variablen
    • ...

Statische Partitionierung

image_281.png

  • Aufteilung in Partitionen gleicher / unterschiedlicher Größe
    • im Idealfall möglichst passgenau
      • möglichst wenig interne Fragmentierung
    • Falls unterschiedliche Größe
      • BS verwaltet Warteschlange
        • eigene für jede Partition eine für alle
          :( bestimmte Partitionen werden seltener/nie verwendet
  • Nachteil:
    • zwangsläufig interne Fragmentierung
      • sehr ineffizient
        image_282.png

Dynamische Partitionierung

  • BS weist jedem Prozess eine zusammenhängende Partition zu

    • mit exakt benötigter Größe
    • dabei auch Fragmentierung
  • Darstellung des Speichers durch BS als verkettete Liste

    • Kennzeichnung, ob frei/belegt
    • Startadresse
    • Länge
    • Zeiger auf nächsten Eintrag
  • Unterschiedliche Zuteilungskonzepte

    • wie sucht/findet das BS einen freien Speicherbereich
    • First Fit
      • sucht bei jeder Anforderung ab Anfang des Adressraums
    • Next Fit
      • sucht ab letzter Zuweisung
    • Best Fit
      • Sucht immer den freien Bereich, der am besten zur Anforderung passt
        • am wenigsten Fragmentierung
    • image_450.png

Buddy-Speicherverwaltung

  • Ziel: Fragmentierung von Speicherblöcken minimieren
  • wird oft in BS und in der Verwaltung von Speicher-Pools verwendet
  • basiert auf
    • Blöcke gleicher Größe als Buddies zusammenfassen
      • effizienter Speicherzugriff/-freigabe ermöglichen

Erstellung

  • Am Anfang ein Bereich, der gesamten Speicher abdeckt
  • Sobald ein Prozess Speicherplatz anfordert
    • Speicherkapazität zur nächsthöheren Zweierpotenz aufrunden
    • entsprechenden, freien Bereich suchen
      • Falls nicht existent
        • Nach Bereich doppelter Größe suchen
          • in zwei Teile teilen (Buddies)
          • eine Hälfte wird anfordernden Prozess zugewiesen
  • image_283.png
  • Linux verwendet für Zuweisung von Speicherseiten zu Prozessen
    • Informationen in /proc/buddyinfo
      • image_284.png