update
This commit is contained in:
parent
ce02d02007
commit
4207158b07
BIN
Writerside/images/image_285.png
Normal file
BIN
Writerside/images/image_285.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 112 KiB |
BIN
Writerside/images/image_286.png
Normal file
BIN
Writerside/images/image_286.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 81 KiB |
BIN
Writerside/images/image_287.png
Normal file
BIN
Writerside/images/image_287.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 116 KiB |
BIN
Writerside/images/image_288.png
Normal file
BIN
Writerside/images/image_288.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
BIN
Writerside/images/image_289.png
Normal file
BIN
Writerside/images/image_289.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 51 KiB |
BIN
Writerside/images/image_290.png
Normal file
BIN
Writerside/images/image_290.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 118 KiB |
@ -18,6 +18,7 @@
|
|||||||
<toc-element topic="11_Energieeffizienz.md"/>
|
<toc-element topic="11_Energieeffizienz.md"/>
|
||||||
<toc-element topic="12_Virtualisierung.md"/>
|
<toc-element topic="12_Virtualisierung.md"/>
|
||||||
<toc-element topic="13_Speicherverwaltung.md"/>
|
<toc-element topic="13_Speicherverwaltung.md"/>
|
||||||
|
<toc-element topic="14_Speicherabstraktion.md"/>
|
||||||
</toc-element>
|
</toc-element>
|
||||||
<toc-element toc-title="OOAD">
|
<toc-element toc-title="OOAD">
|
||||||
<toc-element topic="IntroductionOOAD.md"/>
|
<toc-element topic="IntroductionOOAD.md"/>
|
||||||
|
109
Writerside/topics/BS/14_Speicherabstraktion.md
Normal file
109
Writerside/topics/BS/14_Speicherabstraktion.md
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
# 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
|
||||||
|
- 
|
||||||
|
|
||||||
|
> 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_)
|
||||||
|
- 
|
||||||
|
|
||||||
|
## Paging
|
||||||
|
- Speicherverwaltungstechnik
|
||||||
|
- Virtueller Speicher wird in kleine, gleichgroße Blöcke (_Seiten_) unterteilt
|
||||||
|
- Können dann in physischem Speicher / Festplatte ausgelagert werden ([Swapping](#swapping))
|
||||||
|
- Adressen werden mithilfe von Indizierung, Basisregistern und Segmentregistern generiert
|
||||||
|
- = virtuelle Adresse, bildet virtuellen [Adressraum](#adressr-ume)
|
||||||
|
- virtueller Adressraum besteht aus Einheiten fester Größe
|
||||||
|
- werden _Seitenrahmen (page frame)_ genannt
|
||||||
|
- Beispiel:
|
||||||
|
- 
|
||||||
|
- 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
|
||||||
|
- 
|
||||||
|
- 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
|
||||||
|
- 
|
||||||
|
- 16Bit Adresse wird in 4-Bit-Seitennummer und 12Bit Offset zerlegt
|
||||||
|
- 4 Bit → 16 Seiten
|
||||||
|
- 12 Bit → 4096 Byte adressierbar
|
||||||
|
- 
|
||||||
|
- [YouTube: _Virtuelle Speicherverwaltung mit MMU_](https://www.youtube.com/watch?v=QPL-xJ6ePqQ)
|
||||||
|
|
||||||
|
## 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
|
Loading…
x
Reference in New Issue
Block a user