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="12_Virtualisierung.md"/>
|
||||
<toc-element topic="13_Speicherverwaltung.md"/>
|
||||
<toc-element topic="14_Speicherabstraktion.md"/>
|
||||
</toc-element>
|
||||
<toc-element toc-title="OOAD">
|
||||
<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