zusammenfassungen/Writerside/topics/BS/14_Speicherabstraktion.md
David Schirrmeister 1ae5f8a71b update
2024-07-12 12:40:58 +02:00

4.8 KiB

Speicherabstraktion

Idee, dass Anwendungen und Benutzer nicht direkt mit physischem Speicher interagieren müssen.
Sie können stattdessen auf einer höheren, abstrakten Ebene arbeiten

Ermöglicht einfachere, flexiblere Verwendung des Speichers, da Details der physischen Speicherhardware
vor Benutzer und Anwendung verborgen werden.

Adressräume

  • Gesamter Bereich von Speicheradressen, welcher durch System/Prozess verwendet werden kann
  • ermöglicht Beschränkung des Zugriffs auf bestimmte Speicherbereiche
    • Sicherheit & Integrität gewährleisten
    • unautorisierten Speicherzugriff verhindern

Relokation

  • Jede Anwendung bekommt eigenen Adressraum des physischen Speichers
  • Dafür Spezialregister in der CPU
    • ermöglichen laden von Programmen in den Speicher ohne Relokation
    • Basisregister
      • Startadresse des Programms
    • Limitregister
      • Länge des Programms
  • Nachteil:
    • Bei jedem Speicherzugriff Addition und Vergleich ausführen
      • Addition benötigt wegen Carry-Bit lange
      • Vergleich ist fine

In der Praxis ist die benötigte RAM-Menge oft größer als der physische Speicher

Swapping

  • Prozesse zwischen primären Speicher(RAM) und sekundären Speicher (Festplatte) austauschen
  • Entlastung des RAM durch Auslagerung nicht benötigter Prozesse
  • Kann Leistung beeinträchtigen
    • Zugriff auf sekundären Speicher dauert länger
  • image_285.png

Sehr erfolgversprechend, da normale SATA nur Max-Übertragungsgeschwindigkeit von einigen 100MB/s hat

→ es dauert Sekunden, um ein 1GB-Programm aus-/einzulagern

Virtual Memory

  • Virtueller Speicher ermöglicht mehr Speicher zu verwenden als vorhanden ist
  • Physischer Speicher und ein Teil der Festplatte werden als virtueller Speicher behandelt
  • BS kann effizienten Gebrauch von begrenzten RAM machen
    • Prozesse und Daten dynamisch zwischen physischem Speicher und sekundärem Speicher verschieben
      • Gesamtleistung optimieren :)

Dynamischer Speicher

  • Speicherplatz, der zur Laufzeit eines Programms dynamisch angefordert, freigegeben wird
    • Speicherplatz während Laufzeit variieren
    • bietet Flexibilität
      • Programme können während Ausführung an sich ändernde Anforderungen reagieren
        • müssen nicht im Voraus Speicherplatz reservieren
  • Wird oft im Heap reserviert
    • Heap wird meist für lokale Variablen, Funktionsaufrufe verwendet
    • ermöglicht Heap dynamische Zuweisung von Speicherplatz
  • Programmierer ist für Freigabe von Speicherplatz verantwortlich
    • vernachlässigte Freigabe kann zu Speicherlecks führen
    • einige Programmiersprachen haben eine automatische Speicherverwaltung (Garbage Collection)
  • image_286.png

Paging

  • Speicherverwaltungstechnik
    • Virtueller Speicher wird in kleine, gleichgroße Blöcke (Seiten) unterteilt
      • Können dann in physischem Speicher / Festplatte ausgelagert werden (Swapping)
    • Adressen werden mithilfe von Indizierung, Basisregistern und Segmentregistern generiert
      • = virtuelle Adresse, bildet virtuellen Adressraum
      • virtueller Adressraum besteht aus Einheiten fester Größe
        • werden Seitenrahmen (page frame) genannt
  • Beispiel:
    • image_287.png
    • Seiten und Seitenrahmen sind hier 4KB
      • normalerweise von 512 Byte - 1GB
  • Present-/Absent-Bit zeigt an, ob Seiten physisch im Speicher vorhanden sind
  • Greift Programm auf einen Speicherbereich zu, der noch nicht in den Speicher geladen wurde
    • Seitenfehler (page fault) wird ausgelöst
      • BS gibt einen Seitenrahmen im Speicher frei
      • BS lädt entsprechende Seite in jetzt freien Seitenrahmen
      • Befehl wird nochmal ausgeführt
  • image_288.png
  • Muss schnell gehen, da es sonst zu Engpass wird
    • Meist < 0,2 ns
  • Jeder Prozess hat eigenen Adressraum
    • benötigt eigene Seitentabelle

Memory Management Unit (MMU)

  • virtuelle Adresse, die von Prozessen/Programmen verwendet werden in physische Adressen umwandeln
    • mithilfe von Seitentabellen oder anderen Mechanismen
  • Schlüsselelement des Speichermanagements
    • zentrale Rolle bei Implementierung von Funktionen
      • wie virtuellem Speicher und Paging
  • image_289.png
  • 16Bit Adresse wird in 4-Bit-Seitennummer und 12Bit Offset zerlegt
    • 4 Bit → 16 Seiten
    • 12 Bit → 4096 Byte adressierbar
    • image_290.png
  • YouTube: Virtuelle Speicherverwaltung mit MMU

Translation Lookaside Buffer

  • Assoziativer Speicher (TLB) für schnellere Adressumwandlung der MMU
    • Puffert Seitenzugriffe
      • ermöglicht direkteren Zugriff auf wichtige Informationen der Speichertabelle
        • ohne Zugriff auf Seitentabelle
  • enthält nur wenige Einträge
    • Schnelle Suche
  • Arbeitet als Cache für MMU