Uploaded by Gregory House

VirtuellerSpeicher

advertisement
Grundlagen von Betriebssystemen
Speichervirtualisierung mit gekachelter Speicherverwaltung
05. November 2020
Peter Ulbrich
Proseminar: Konzepte von Betriebssystemkomponenten
Rekapitulation
Logische Adressräume
Abstraktion
Abstrakte Speicheradressen
Logische
Adressräume
Adressraumsegmentierung
Dynamische Relokation
Strategien
→ Mehrprogrammbetrieb
Speicherzuteilung
(First Fit, Buddy, …)
Speicherverwaltung
Datenstrukturen
Mechanismen (Software)
Speicherverwaltung
(Bitmap, Verkettete Liste)
Swapping
Zuteilungsalgorithmen
→ Wo ist noch Platz?
Mechanismus (Hardware)
Base- & LimitRegister
1
Rekapitulation
Logische Adressräume
Abstraktion
Abstrakte Speicheradressen
Logische
Adressräume
Adressraumsegmentierung
Dynamische Relokation
Strategien
→ Mehrprogrammbetrieb
Speicherzuteilung
(First Fit, Buddy, …)
Speicherverwaltung
Datenstrukturen
Mechanismen (Software)
Speicherverwaltung
(Bitmap, Verkettete Liste)
Mechanismus (Hardware)
Base- & LimitRegister
Swapping
Zuteilungsalgorithmen
→ Wo ist noch Platz?
Grenzen
→ Adressraumüberlauf?
→ Simultaner Mehrprogrammbetrieb?
1
Lernziele dieser Vorlesung
Abstraktion
Logische
Adressräume
Virtuelle
Adressräume
Virtuelle Adressräume
Abstrakter Speicher
Strategien
Speicherzuteilung
(First Fit, Buddy, …)
→ Entkopplung Speicherort
Seitenersetzung
(Optimal, LRU)
Gekachelte Speicherverwaltung
Seitentabellen
Mechanismen (Software)
Speicherverwaltung
Swapping
(Bitmap, Verkettete Liste)
Mechanismus (Hardware)
Base- & LimitRegister
MMU
Kachelung
(Seitentabellen,
Seitenumlagerung)
Adressumsetzung
Seitenersetzung
→ Welches Datum ist wann im
Speicher?
(Adressumsetzung,
Seitenfehler)
2
Gliederung
Virtueller Speicher
Grundlagen
Gekachelte Speicherverwaltung
Seitenersetzung
Grundlagen
Least-Recently-Used-Algorithmus
Zusammenfassung
3
Gliederung
Virtueller Speicher
Grundlagen
Gekachelte Speicherverwaltung
Seitenersetzung
Grundlagen
Least-Recently-Used-Algorithmus
Zusammenfassung
4
Grundlagen virtueller Adressräume
Prozessor
 Simultanes ausführen von Programmen die potentiell größer
sind als der verfügbare physische Speicher
Rechenkern
0xA0FF
Virtuelle
Adresse
Virtueller Speicher ⇝ abstrakter Speicher
Virtueller Adressraum (Av ) 7→ Partielle Abbildung f : Av 7→ Ap
MMU
Eine virtuelle Adresse erscheint echt, bildet jedoch
entweder auf den Haupt- oder Ablagespeicher ab
0x12FF
→ Mehr Arbeits- als Hauptspeicher
Physische
Adresse
Seitenbasierte (gekachelte) Speicherverwaltung
 Einteilung in (virtuelle) Seiten und (physischen)
Seitenrahmen fester Größe
Speicher
Adressumsetzung mittels spezieller Hardwareeinheit (MMU)
Betriebssystem übernimmt die Ein- bzw. Auslagerung
Festplatte
Bus
5
Adressumsetzung
Mechanismen der Hardware
p
Virtuelle Adresse
000
0
1
000
0
2
010
1
3
100
1
4
011
0
5
001
1
6
111
0
7
110
0
Seitenfehler
1 0 1 0 1 1 0 0
Seitentabelle
0
o
anwesend
Verarbeitet virtuelles Adressetupel (p, o):
Seitennummer p im (linearen)
Adressraum des Prozesses
Offset o innerhalb der Seite
Bezogen auf die passende Seitentabelle
→ Erzeugt eine physische Adresse, welche
auf den Speicherbus gelegt wird
Seitenfehler
Erfolgt bei nicht abgebildeter Seite
(Präsenz-Bit = 0)
Synchrone Programmunterbrechung (trap)
abwesend
Physische Adresse
Memory Management Unit
0 0 1 0 1 1 0 0
→ Bedingt Einlagerung der adressierten
Seite durch das Betriebssystem
6
Seitentabellen (1)
Seitentabelle
Beschreibt den einem Prozess zugewiesenen Adressraum (ggf. mehrere davon)
Dient der Abbildung von virtuellen Seiten auf Seitenrahmen (physischen Speicher)
Menge von Seitendeskriptoren mit der virtuellen Seitenummer als Index
7
Seitentabellen (1)
Seitentabelle
Beschreibt den einem Prozess zugewiesenen Adressraum (ggf. mehrere davon)
Dient der Abbildung von virtuellen Seiten auf Seitenrahmen (physischen Speicher)
Menge von Seitendeskriptoren mit der virtuellen Seitenummer als Index
Seitendeskriptor
ReferenzBit
Modifikations
-Bit
SchutzBits
Präsenz
-Bit
Seitenrahmennummer
Seitendeskriptor
Beschreibt die statischen/dynamischen Eigenschaften einer Seite:
Seitenrahmennummer:
Gemäß der Seitengröße ausgerichtete physische
Attribute:
Adresse des Seitenrahmens
Präsenz-Bit (Seite im Hauptspeicher präsent)
Schutz-Bits (Lese-/Schreib-/Ausführungsschutz)
Modifikations-Bit (Änderungsindikator, dirty bit)
Referenz-Bit (Zugriffsindikator lesen/schreibend)
7
Seitentabellen (1)
Seitentabelle
Beschreibt den einem Prozess zugewiesenen Adressraum (ggf. mehrere davon)
Dient der Abbildung von virtuellen Seiten auf Seitenrahmen (physischen Speicher)
Menge von Seitendeskriptoren mit der virtuellen Seitenummer als Index
Seitendeskriptor
ReferenzBit
Modifikations
-Bit
SchutzBits
Präsenz
-Bit
Seitenrahmennummer
Seitendeskriptor
Beschreibt die statischen/dynamischen Eigenschaften einer Seite:
Seitenrahmennummer:
Gemäß der Seitengröße ausgerichtete physische
Attribute:
Adresse des Seitenrahmens
Präsenz-Bit (Seite im Hauptspeicher präsent)
Schutz-Bits (Lese-/Schreib-/Ausführungsschutz)
Modifikations-Bit (Änderungsindikator, dirty bit)
Referenz-Bit (Zugriffsindikator lesen/schreibend)
 Aufbau ist grundsätzlich stark plattformabhängig, vorgegeben durch die MMU
7
Seitentabellen (2)
Ausflug in die Umsetzungsaspekte
 Umgang mit großen bzw. dünn besetzten Adressräumen
Mehrstufige Seitentabellen
 Nicht benötigte Seitentabellen auslagern
Adressraumsegmentierung (Text, Daten, Stapel) fördert Löcher im Adressraum
Aufteilung in zweistufige Seitentabellen
2x 10-Bit-Felder p1 und p2 für Seitenummern + 12-Bit-Offset o
→ Seitentabellen mit je nur 1024 Einträgen
8
Seitentabellen (2)
Ausflug in die Umsetzungsaspekte
 Umgang mit großen bzw. dünn besetzten Adressräumen
Mehrstufige Seitentabellen
 Nicht benötigte Seitentabellen auslagern
Adressraumsegmentierung (Text, Daten, Stapel) fördert Löcher im Adressraum
Aufteilung in zweistufige Seitentabellen
2x 10-Bit-Felder p1 und p2 für Seitenummern + 12-Bit-Offset o
→ Seitentabellen mit je nur 1024 Einträgen
Invertierte Seitentabellen [3]
Mehrstufigkeit (> 3) wird ineffizient und stößt bei 64-Bit-Rechensystemen schnell
an Grenzen (≈252 Einträge)
 Seitendeskriptoren lediglich für Seitenrahmen speichern
32 GiB physischer Speicher erfordern lediglich ≈8,4 Mio. Einträge (= 64 MiB)
Zuordnung Prozess zu Seite wird schwieriger (Suche statt Index)
→ Hash-Tabellen lösen das Problem
8
Gliederung
Virtueller Speicher
Grundlagen
Gekachelte Speicherverwaltung
Seitenersetzung
Grundlagen
Least-Recently-Used-Algorithmus
Zusammenfassung
9
Grundlagen der Seitenersetzung
 Zeitmultiplexen von Seitenrahmen durch Umlagerung
Vorraussetzungen die zu erbringen sind:
Geeignete Mechanismen zur Seitenumlagerung (vgl. Folie 4 ff.)
Ein Seitenrahmen muss zur Ausnahme der angeforderten Seite verfügbar sein
Freie Seitenrahmen ermöglichen direkte Speicherzuteilung (vgl. Kapitel 4)
Andernfalls muss ein belegter Seitenrahmen freigegeben werden
 Freigeben bedingt ggf. die vorherige Auslagerung
Strategie für die Suche nach einem geeigneten Kandidaten
→ Welche Seite im Hauptspeicher ist ersetzbar?
10
Grundlagen der Seitenersetzung
 Zeitmultiplexen von Seitenrahmen durch Umlagerung
Vorraussetzungen die zu erbringen sind:
Geeignete Mechanismen zur Seitenumlagerung (vgl. Folie 4 ff.)
Ein Seitenrahmen muss zur Ausnahme der angeforderten Seite verfügbar sein
Freie Seitenrahmen ermöglichen direkte Speicherzuteilung (vgl. Kapitel 4)
Andernfalls muss ein belegter Seitenrahmen freigegeben werden
 Freigeben bedingt ggf. die vorherige Auslagerung
Strategie für die Suche nach einem geeigneten Kandidaten
→ Welche Seite im Hauptspeicher ist ersetzbar?
Die ideale Seitenersetzungsstrategie (Optimaler Algorithmus) [1]
 Ersetze die Seite die am längsten nicht referenziert wird
Höchste Anzahl an Instruktionen bis zum erneuten Zugriff
Diese Information ist i.A. nicht Verfügbar ⇝ Vorhersagbarkeit
 Nicht realisierbar, jedoch als Vergleichskandidat geeignet
10
Der Least-Recently-Used-Algorithmus (LRU)
 (Gute) Annäherung an den optimalen Algorithmus
Der Least-Recently-Used-Algorithmus (LRU)
 Ersetze die Seite die am längsten nicht mehr referenziert wurde
Der Beobachtung folgend, dass Zugriffe meist lokal gehäuft sind
Eine alte Referenz deutet darauf hin, dass die Seite nicht mehr gebraucht wird
LRU ist realisierbar, jedoch nicht billig
Verkettete Liste aller Seiten, sortiert nach Alter ⇝ Suche und Manipulation aufwendig
11
Der Least-Recently-Used-Algorithmus (LRU)
 (Gute) Annäherung an den optimalen Algorithmus
Der Least-Recently-Used-Algorithmus (LRU)
 Ersetze die Seite die am längsten nicht mehr referenziert wurde
Der Beobachtung folgend, dass Zugriffe meist lokal gehäuft sind
Eine alte Referenz deutet darauf hin, dass die Seite nicht mehr gebraucht wird
LRU ist realisierbar, jedoch nicht billig
Verkettete Liste aller Seiten, sortiert nach Alter ⇝ Suche und Manipulation aufwendig
Umsetzung durch Hardwareunterstützung
Erfordert einen Zähler C, welcher nach jedem Maschinenbefehl inkrementiert wird
Jeder Eintrag der Seitentabelle wird um ein Feld für C ergänzt, welches bei jedem
Speicherzugriff aktualisiert
Vergrößert den notwendigen Speicherbedarf enorm (C typischerweise 64 Bit)
Alternative Umsetzung durch Bitmatrizen (n × n, für n Seitenrahmen)
→ Betriebssystem sucht den Eintrag mit dem niedrigsten Zählerstand/Binärwert
 Entsprechende Hardwareunterstützung fehlt meist (teuer)
11
Der Aging-Algorithmus
0 1 2 3 4 5
R-Bits 0 0 0 0 0 0
Simulation von LRU in Software [4, S.261 ff.]
Zeitintervall: 0
Seite
Alter
0
00000000
0
1
00000000
0
2
00000000
0
3
00000000
0
4
00000000
0
5
00000000
0
Seitentabelle
Reduktion der zeitlichen Auflösung, anstelle von C
werden Zeitintervalle gezählt ⇝ Zeitgeberunterbrechung
→ Wesentlich geringerer Speicherbedarf (typ. 8 Bit)
Ablauf in jedem Zeitintervall
Die Zähler für das Alter werden nach rechts geschoben
(vergessen)
Das höchstwertige Bit des Zählers wird auf das
Referenz-Bit gesetzt (merken)
12
Der Aging-Algorithmus
0 1 2 3 4 5
R-Bits 1 0 1 0 1 1
Simulation von LRU in Software [4, S.261 ff.]
Zeitintervall: 1
Seite
Alter
0
10000000
128
1
00000000
0
2
10000000
128
3
00000000
0
4
10000000
128
5
10000000
128
Seitentabelle
Reduktion der zeitlichen Auflösung, anstelle von C
werden Zeitintervalle gezählt ⇝ Zeitgeberunterbrechung
→ Wesentlich geringerer Speicherbedarf (typ. 8 Bit)
Ablauf in jedem Zeitintervall
Die Zähler für das Alter werden nach rechts geschoben
(vergessen)
Das höchstwertige Bit des Zählers wird auf das
Referenz-Bit gesetzt (merken)
12
Der Aging-Algorithmus
0 1 2 3 4 5
R-Bits 1 1 0 0 1 0
Simulation von LRU in Software [4, S.261 ff.]
Zeitintervall: 2
Seite
Alter
0
11000000
192
1
10000000
128
2
01000000
64
3
00000000
0
4
11000000
192
5
01000000
64
Seitentabelle
Reduktion der zeitlichen Auflösung, anstelle von C
werden Zeitintervalle gezählt ⇝ Zeitgeberunterbrechung
→ Wesentlich geringerer Speicherbedarf (typ. 8 Bit)
Ablauf in jedem Zeitintervall
Die Zähler für das Alter werden nach rechts geschoben
(vergessen)
Das höchstwertige Bit des Zählers wird auf das
Referenz-Bit gesetzt (merken)
12
Der Aging-Algorithmus
0 1 2 3 4 5
R-Bits 1 1 0 1 0 1
Simulation von LRU in Software [4, S.261 ff.]
Zeitintervall: 3
Seite
Alter
0
11100000
224
1
11000000
192
2
00100000
32
3
10000000
128
4
01100000
96
5
10100000
160
Seitentabelle
Reduktion der zeitlichen Auflösung, anstelle von C
werden Zeitintervalle gezählt ⇝ Zeitgeberunterbrechung
→ Wesentlich geringerer Speicherbedarf (typ. 8 Bit)
Ablauf in jedem Zeitintervall
Die Zähler für das Alter werden nach rechts geschoben
(vergessen)
Das höchstwertige Bit des Zählers wird auf das
Referenz-Bit gesetzt (merken)
12
Der Aging-Algorithmus
0 1 2 3 4 5
R-Bits 1 0 0 0 1 0
Simulation von LRU in Software [4, S.261 ff.]
Zeitintervall: 4
Seite
Alter
0
11110000
240
1
01100000
96
2
00010000
16
3
01000000
64
4
10110000
176
5
01010000
80
Seitentabelle
Reduktion der zeitlichen Auflösung, anstelle von C
werden Zeitintervalle gezählt ⇝ Zeitgeberunterbrechung
→ Wesentlich geringerer Speicherbedarf (typ. 8 Bit)
Ablauf in jedem Zeitintervall
Die Zähler für das Alter werden nach rechts geschoben
(vergessen)
Das höchstwertige Bit des Zählers wird auf das
Referenz-Bit gesetzt (merken)
12
Der Aging-Algorithmus
0 1 2 3 4 5
Simulation von LRU in Software [4, S.261 ff.]
R-Bits 0 1 1 0 0 0
Reduktion der zeitlichen Auflösung, anstelle von C
werden Zeitintervalle gezählt ⇝ Zeitgeberunterbrechung
Zeitintervall: 5
→ Wesentlich geringerer Speicherbedarf (typ. 8 Bit)
Seite
Alter
0
01111000
120
1
10110000
176
2
10001000
136
3
00100000
32
4
01011000
88
5
00101000
40
Seitentabelle
Ablauf in jedem Zeitintervall
Die Zähler für das Alter werden nach rechts geschoben
(vergessen)
Das höchstwertige Bit des Zählers wird auf das
Referenz-Bit gesetzt (merken)
Bei einem Seitenfehler
Wird die Seite mit dem niedrigsten Zählerstand entfernt
12
Der Aging-Algorithmus
Simulation von LRU in Software [4, S.261 ff.]
0 1 2 3 4 5
R-Bits 0 1 1 0 0 0
Reduktion der zeitlichen Auflösung, anstelle von C
werden Zeitintervalle gezählt ⇝ Zeitgeberunterbrechung
Zeitintervall: 5
→ Wesentlich geringerer Speicherbedarf (typ. 8 Bit)
Seite
Alter
0
01111000
120
1
10110000
176
2
10001000
136
3
00100000
32
4
01011000
88
5
00101000
40
Seitentabelle
Ablauf in jedem Zeitintervall
Die Zähler für das Alter werden nach rechts geschoben
(vergessen)
Das höchstwertige Bit des Zählers wird auf das
Referenz-Bit gesetzt (merken)
Bei einem Seitenfehler
Wird die Seite mit dem niedrigsten Zählerstand entfernt
12
Gliederung
Virtueller Speicher
Grundlagen
Gekachelte Speicherverwaltung
Seitenersetzung
Grundlagen
Least-Recently-Used-Algorithmus
Zusammenfassung
13
Resümee und Ausblick
Grundlagen virtuellen Speichers
Arbeitsspeicher als Abstraktion des physischen Hauptspeichers
Simultaner Mehrprogrammbetrieb von Prozessen die potentiell (zu) hohen
Speicheranforderungen
Realisierung in Form einer gekachelten Speicherverwaltung
Erfordert Unterstützung durch die Hardware: Memory Management Unit
Mechanismen des Betriebssystems zur Seitenverwaltung und Seitenumlagerung
14
Resümee und Ausblick
Grundlagen virtuellen Speichers
Arbeitsspeicher als Abstraktion des physischen Hauptspeichers
Simultaner Mehrprogrammbetrieb von Prozessen die potentiell (zu) hohen
Speicheranforderungen
Realisierung in Form einer gekachelten Speicherverwaltung
Erfordert Unterstützung durch die Hardware: Memory Management Unit
Mechanismen des Betriebssystems zur Seitenverwaltung und Seitenumlagerung
Strategien für die Seitenverwaltung
Seitenersetzungsalgorithmen
Optimaler Algorithmus ist nicht realisierbar
Least-Recently-Used-Algorithmus (teuer) und dessen Annäherung durch Aging
14
Resümee und Ausblick
Grundlagen virtuellen Speichers
Arbeitsspeicher als Abstraktion des physischen Hauptspeichers
Simultaner Mehrprogrammbetrieb von Prozessen die potentiell (zu) hohen
Speicheranforderungen
Realisierung in Form einer gekachelten Speicherverwaltung
Erfordert Unterstützung durch die Hardware: Memory Management Unit
Mechanismen des Betriebssystems zur Seitenverwaltung und Seitenumlagerung
Strategien für die Seitenverwaltung
Seitenersetzungsalgorithmen
Optimaler Algorithmus ist nicht realisierbar
Least-Recently-Used-Algorithmus (teuer) und dessen Annäherung durch Aging
→ Weitere Strategien (z.B. auf Basis der Arbeitsmenge) und Umsetzungsaspekte (z.B.
Seitenflattern, Segmentierung) im nächsten Kapitel
14
Literaturverzeichnis (1)
[1]
BELADY, L. A.:
A Study of Replacement Algorithms for a Virtual-storage Computer.
In: IBM Systems journal 5 (1966), Nr. 2, S. 78–101
[2] STALLINGS, W. :
Operating Systems: Internals and Design Principles.
Upper Saddle River, NJ: Pearson/Prentice Hall„ 2009
[3] TALLURI, M. ; HILL, M. D. ; KHALIDI, Y. A.:
A New Page Table for 64-bit Address Spaces.
In: Proceedings of the 15th ACM symposium on Operating systems principles, 1995, S.
184–200
[4] TANENBAUM, A. S.:
Moderne Betriebssysteme.
Pearson Deutschland GmbH, 2009
Download