02_Speicherverwaltung Flashcards

1
Q

Speicherhierarchie

A
  • CPU kann nur Befehle aus RAM ausführen, nichts von Festplatte
  • bei Starten des Rechners lädt BIOS von Festplatte ins RAM – erst dann Verzweigung ob UNIX oder Windows
  • bis Festplatte alles flüchtig
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Binden von Modulen

A
  • Lage der Variablen und die Sprungadresse müssen zum Zeitpunkt der Compilierung festgelegt werden, bzw. zum Zeitpunkt des Ladens in den Speicher berechnet werden
  • Symtab = symbol table – alle vermerkt, um Funktionen/ Variablen/… eines Moduls zu finden
  • Beim Compilieren von Modulen kennt der Compiler keine Adressen aus anderen Modulen -> Module immer auf die gleichen Adressen übersetzt
  • Binden: Module in eine Datei zusammengefügt + Referenzen neu berechnet
  • Adressen verschieben sich um einen bestimmten Betrag = relozieren/reallocation
  • am besten: CPU nutzt virtuelle Adressierung statt absolute (Identität von physischer + verwendeter Adresse)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Partitionierung

A
  • bei multi-programming BS
  • Aufteilung des Hauptspeichers in feste Bereiche, OS im Rest des Speichers
  • Relozieren auf Partition beim Laden der Programme -> Adressen finden und neu berechnen
  • viel Verschnitt (Verlust), da die Programme nicht genauso groß sind + Programme max. so groß wie Partition
  • Verbesserung: unterschiedlich große Partitionen -> mehr Aufwand beim Laden, um passende Partition zu finden, Platzverlust durch Fragmentierung (insg. genügend freier Speicher, aber auf viele kleine Bruchstücke verteilt)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Segementierte Adressierung

A
  • Möglichkeit, Code und Daten eines Prozesses verschiebbar im Speicher anzuordnen
  • Umschieben der Adressen, ohne Adressen neu zu berechnen – nur das richtige Segmentregister muss geladen werden
  • 16 Bit breite Register adressiert -> 64 kB Adressen (Daten und Stack)
  • zusätzl. 4 Segmentregister -> Inhalt, um 4 Bit versetzt, auf 16 Bit - Adresse aufaddiert
  • insg. 20-Bit-Adressen -> 1 MB Adressraum des Prozessors nutzbar
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Virtuelle Adressierung

Grundlage

A
  • ermöglicht Trennung verschiedener Anwendungen
  • virtuelle Adresse in MMU in reelle Adresse umgewandelt
  • Paging: Adresse bereichsweise umgerechnet -> Speicher zerfällt in Pages, die nicht weiter zerlegbar sind
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Virtuelle Adressierung

Vorgehen

A
  • Page ist Index der Page Table, pro Programm eine Page Table
  • Offset wird aus der virtuellen Adresse übernommen
  • CR3 = Prozessorregister, das auf den Beginn der PT im RAM zeigt
  • am Beispiel von 32-Bit Rechner
  • real page um 12 Bit nach links verschoben -> hat rechts 12 Nullen = Beginn der page
  • wenn sich nur Offset ändert, wird in selbe Page adressiert
  • real page++ zeigt um 2^12 Adressen weiter = jede Page ist 4 KB (2^12) groß -> Anwendung mit 21 kB werden 24 kB zugeordnet
  • PT = 4 MB groß, da für jede Seite ein Eintrag erforderlich (2^20 Möglichkeiten) -> mit page directory: wenn Eintrag ungültig, spart man sich Speicherplatz für Page Table
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Virtuelle Adressierung

Page Table Entry

A
  • ermöglicht, ZUgriff eines laufenden Programms auf zugewiesene Speicherbereiche zu beschränken -> sicheres BS
  • T: Write-Back außer Kraft gesetzt
    • Write-Back: Kopie gleichzeitig in Cache + RAM, Aktion erst fertig wenn in RAM geschrieben
    • Write-Through: nur in Cache gespeichert, bei erneuten Zugriffen write-back
  • wenn P=0: kein Zugriff/Eintrag nicht vorhanden
    • MMU generiert Interrupt (Exception)
    • Schreib-/Lesebefehl wird nicht ausgeführt
    • Behandlung einer page exception im BS
  • A+M für Speicherverwaltung wichtig
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Virtuelle Adressierung

Huge Pages

A
  • 4 MB Pages statt 4 kB
  • alle Page Tables eingespart
  • Offset von 12 Bit auf 22 Bit vergrößert -> benötigt, um 4 MB zu adressieren
  • restliche 10 Bits für 4 kB Page-Directory
  • Vorteil: einfachere Speicherverwaltung
  • Nachteil: erhöhter Seitenverschnitt
  • ABER: meist Mischung aus 4 KB und 4 MB Pages
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Aufteilung des virtuellen Adressraums

A
  • Daten und Code haben feste Länge
  • Heap:
    • Speicher, der während der Laufzeit angefordert wird
    • wird größer und kleiner
  • Stack: wächst während der Laufzeit, speichert temporäre Daten
    • Stack Pointer zeigt auf nächsten freien Speicherraum
  • Heap und Stack wachsen aufeinander zu -> Freiraum dazwischen
  • jede Seite des Anwendungsadressraums wird auf reellen Adressraum abgebildet -> virtuell zusammenhängend. in Realität über gesamten Speicher verteilt
  • max. eine Seitengröße Verschnitt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

2-stufige virtuelle Adressierung

A
  • PTP = page table pointer, zeigt auf Anfang einer page table
  • MMU hört schon im PD auf, wenn P=0
  • 4K-Page: Offset von 2^12
  • kleines Programm:
    • 1 Page Table für Daten und Code 1 Page Table für Stack = 12 KB
    • 1 Page Directory: alle außer 2 P-Bits auf 0 gesetzt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Virtuelle Adressierung bei 64-Bit-Prozessoren

A
  • Umsetzungsprinzip
  • 4 Teiltabellen
  • jeder Adressteil 9 Bit breit
  • 2^9 Einträge * 8 Byte (64 Bit pro Tabelleneintrag) = 4 KB Größe der Tabellen
  • wenn p = false: Folgetabelle muss nicht im Hauptspeicher gespeichert sein
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Invertierte Seitentabellen

A
  • nicht MMU, sondern Software (Hash-Algorithmus)
  • Größe der Seitentabellen exakt proportional dem Speicherausbau, da für jede 4k-Seite genau einen Eintrag in Seitentabelle
  • Adressumsetzung über Hash-Algorithmus
  • linker Teil der Adresse mit Inhalt der Hashtabelle verglichen: Index des Fundorts = Seitennummer i
  • i*4k (4096) = Beginn der Seite
  • Seitennummer + Offset = reelle Adresse
  • pid = process id
    p = Seitennummer im Prozess
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Virtuelle Adressierung

Translation Lookaside Buffer

A
  • Nachteil der virtuellen Adressierung: zusätzliche Speicherzugriffe für PD und PT -> schlechte Performance
  • TLB = schneller, kleiner, vollassoziativer Cache
  • für zuletzt genutzte virtuelle Adressen die reelle Adresse gespeichert
  • Adressberechnung ohne Verzögerung
  • Nachteil: bei jedem Kontextwechsel invalide, da jeder Prozess über eigene PD verfügt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly