4.8 KiB
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 arbeitenErmö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
- Bei jedem Speicherzugriff Addition und Vergleich ausführen
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
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 :)
- Prozesse und Daten dynamisch zwischen physischem Speicher und sekundärem Speicher verschieben
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
- Programme können während Ausführung an sich ändernde Anforderungen reagieren
- 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)
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
- Virtueller Speicher wird in kleine, gleichgroße Blöcke (Seiten) unterteilt
- Beispiel:
- 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
- Seitenfehler (page fault) wird ausgelöst
- 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
- zentrale Rolle bei Implementierung von Funktionen
- 16Bit Adresse wird in 4-Bit-Seitennummer und 12Bit Offset zerlegt
- 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
- ermöglicht direkteren Zugriff auf wichtige Informationen der Speichertabelle
- Puffert Seitenzugriffe
- enthält nur wenige Einträge
- Schnelle Suche
- Arbeitet als Cache für MMU