Betriebssysteme (zu Teilen nach Tanenbaum)

Werbung
Speicher
Betriebssysteme
(zu Teilen nach Tanenbaum)
Hermann Härtig
TU Dresden
Tanenbaum
MOS
Wegweiser
Einführung
Elementare Techniken
Virtueller Speicher (Paging)
●
●
●
●
Anliegen - Begriffe - Vorgehen
Adressumsetzung
Seitenersetzung
Arbeitsmengenmodell
Ergänzungen
●
●
●
Betriebssysteme WS 2012, Speicher
Segmentierung
Schutz
Caches
2
Hermann Härtig, TU Dresden
Einleitung
Probleme
●
Speicherhierarchie
●
Programmgröße
●
Parallelität von Prozessen
Historie
1950-er: 1 Prozess, Speicher fest zugeordnet
1965-er: n Prozesse, n disjunkte Speicherbereiche, statisch
1971:
m Prozesse, n Speicherbereiche, dynamisch
Betriebssysteme WS 2012, Speicher
3
Hermann Härtig, TU Dresden
Aufgaben der Speicherverwaltung
●
●
Bereitstellung von Adressräumen
Aufbau von Adressräumen durch Zuordnung logischer
Objekte
●
Verwaltung des Betriebsmittels Hauptspeicher
●
Schutz vor unerlaubten Zugriffen
●
Organisation gemeinsamer Nutzung („Sharing“)
physischen Speichers und logischer Objekte
Betriebssysteme WS 2012, Speicher
4
Hermann Härtig, TU Dresden
Wegweiser
Einführung
Elementare Techniken
Virtueller Speicher (Paging)
●
●
●
●
Anliegen - Begriffe - Vorgehen
Adressumsetzung
Seitenersetzung
Arbeitsmengenmodell
Ergänzungen
●
●
●
Betriebssysteme WS 2012, Speicher
Segmentierung
Schutz
Caches
5
Hermann Härtig, TU Dresden
Statisch
●
Statische Speicherverwaltung
➔
d. h. keine Ein-/Auslagerung von Programmen/Daten


●
●
Einfachrechner (MS-DOS Version ??)
Gerätesteuerungen (embedded systems)
Monoprogramming (ein Programm gleichzeitig)
Programme werden nacheinander geladen und
ausgeführt
0xFF..
BIOS (Gerätetreiber)
Benutzerprogramm
0x0
Betriebssysteme WS 2012, Speicher
BS
6
Hermann Härtig, TU Dresden
„Multiprogramming“
Mehrere Benutzer-Programme gleichzeitig im Rechner; für
jedes Benutzerprogramm gibt es einen oder mehrere Prozesse
Motivation (vgl. Prozesse):
• mehrere Benutzer eines Rechners (multiuser)
• mehrere Benutzerprozesse eines Benutzers
• Benutzerprozesse und Systemprozesse
Multiprogramming vs. parallele Threads/Prozesse:
• parallele Prozesse Voraussetzung für Multiprogramming
(mit oder ohne erzwungenen Prozesswechel)
• denkbar ist Monoprogramming mit vielen parallelen
Prozessen
z. B.: die ersten BS für Parallelrechner erlaubten nur ein
Benutzerprogramm zur gleichen Zeit, das aber aus
vielen Prozessen/Threads bestehen konnte
Betriebssysteme WS 2012, Speicher
7
Hermann Härtig, TU Dresden
Feste oder Variable Speicher-Partitionierung
Fragestellungen
●
Programm4
Relokation
Programme verwenden unterschiedliche Adressen, wenn sie in
unterschiedlichen Partitionen
ablaufen
➔
Abhilfe: Umsetzen der Adressen

beim/vor dem Laden (Software)

zur Laufzeit (Hardware)
●
Schutz der Partitionen voreinander
➔
Abhilfe:

Überprüfung der Adressen zur
Laufzeit (Hardware)
Betriebssysteme WS 2012, Speicher
8
leer
Programm2
leer
Programm1
Betriebssystem
Limitationen
• Menge und Größe der
Programme durch
Real-Speicher
• Auslastung
Hermann Härtig, TU Dresden
Einfaches Modell: Basis- und Limit-Register
CPU
Programm4
LR
leer
BR
Programm2
leer
●
●
➔
gesamte Adressierung relativ
zu Basis-Register
z. B.:
load R, 100
Zugriff auf: BR+100
Programm1
Betriebssystem
Unterbindung aller Zugriffe auf Bereiche außerhalb [BR,LR]
Konsequenz für Implementierung eines Prozess-Systems:
bei Umschaltung müssen auch BR und LR umgeschaltet
werden
Betriebssysteme WS 2012, Speicher
9
Hermann Härtig, TU Dresden
Tanenbaum
Wachsen von Partitionen
B
B
A
A
Einlagerungsalgorithmen zur „Minimierung“ des Verschnitts
●
First fit, Best fit, Buddy, ...
Verwaltung
●
Bitmaps, Listen
Betriebssysteme WS 2012, Speicher
10
Hermann Härtig, TU Dresden
MOS
Swapping: Ein-/Auslagern ganzer Prozesse
Vorgehen
Partitionen von blockierten Prozessen werden auf
persistenten Speicher ausgelagert (z. B. auf Platte) und
bei Gelegenheit wieder eingelagert.
Mehrebenen-Scheduling
auch bereite Prozesse werden ausgelagert
Fragestellungen
• wachsende Partitionen
• Speicherverschnitt (externe Fragmentierung)
Betriebssysteme WS 2012, Speicher
11
Hermann Härtig, TU Dresden
Swapping: Nachteile und Probleme
●
●
●
●
●
Verschnitt hoch
➔
quantitative Ermittlung später
Programmstartzeiten
Limitation der Größe eines Prozesses
durch verfügbaren Hauptspeicher
Ein-/Auslagerungszeit
„ruhende“ Teile
Platzbedarf auf Externspeicher
Betriebssysteme WS 2012, Speicher
12
Hermann Härtig, TU Dresden
Overlays − Überlagerungstechnik
Beliebig große Programme → „Overlays“
Programmierer organisiert seine Programme und Daten in
Stücken, von denen nicht zwei gleichzeitig im Hauptspeicher
sein müssen
Hauptspeicher
Hauptprogramm
Overlaytabelle
Overlay1
Overlay2
Overlay3
Betriebssysteme WS 2012, Speicher
13
Hermann Härtig, TU Dresden
Wegweiser: Virtueller Speicher
Anliegen – Begriffe - Vorgehen
Adressumsetzung
Seitenersetzung
Arbeitsmengenmodell
Betriebssysteme WS 2012, Speicher
14
Hermann Härtig, TU Dresden
Adressraum
Begriff allgemein
●
Menge direkt zugreifbarer Adressen und deren Inhalte
●
Größe bestimmt durch Rechner-Architektur
Physischer Adressraum
●
durch Adressleitungen gebildeter AR,
z. B. am Speicher- oder Peripheriebus eines Rechners
●
Abbildung der Prozessor-Adressen auf die vorhandenen
Speicherbausteine und E/A-Controller
●
Adressumsetzung statisch durch HW-Adressdecoder
Virtueller (logischer) Adressraum eines Prozesses
●
dem Prozess zugeordneter Adressraum
●
Adressumsetzung durch MMU,
veränderliche Abbildungsvorschrift
Betriebssysteme WS 2012, Speicher
15
Hermann Härtig, TU Dresden
Physische Adressräume
CPU
Bridge
I/O
I/O
MEM
Betriebssysteme WS 2012, Speicher
16
Hermann Härtig, TU Dresden
Beispiele für die Nutzung virtueller Adressräume
Unix-Prozesse (konventionell)
Programm Daten
Keller BS
Moderne Datenbank-Implementierung
DB
Programm Daten
➔
➔
Keller BS
Logisch zusammenhängende Adressbereiche
nennt man Regionen
Speicherobjekte werden Regionen zugeordnet
(„Mapping“)
Betriebssysteme WS 2012, Speicher
17
Hermann Härtig, TU Dresden
Virtueller Speicher
Forderungen an Adressräume und ihre Implementierung
●
●
●
●
●
●
groß (soweit die Hardware zuläßt, z. B. jeder bis zu 4 GB
auf Pentium)
frei teilbar und nutzbar
Fehlermeldung bei Zugriff auf nicht belegte Bereiche
Schutz vor Zugriffen auf andere Adressräume
Einschränken der Zugriffsrechte auf bestimmte Bereiche
(z. B. Code nur lesen)
sinnvoller Einsatz des (Haupt-)Speichers

damit Speicher anderweitig nutzbar

wegen kurzer Ladezeiten

ohne großen Aufwand für Programmierer
Betriebssysteme WS 2012, Speicher
18
Hermann Härtig, TU Dresden
Prinzipien der virtuellen Speichers
Idee
Zuordnen von Speicherobjekten (z. B. Segmente, Dateien,
Datenbanken, Bildwiederholspeicher) bzw. Ausschnitten
davon zu Regionen von Adressräumen
Basis: Partitionierung
• des Adressraums in Seiten (Pages)
• der Hauptspeichers in Kacheln
auch Rahmen genannt (Page Frames)
• des Hintergrundspeichers in Blöcke (Blocks)
in Stücke gleicher Größe
➔
Organisation der Zuordnung der Stücke zueinander
durch Hardware und Betriebssystem
Betriebssysteme WS 2012, Speicher
19
Hermann Härtig, TU Dresden
Voraussetzung: Lokalitätsprinzip
Beobachtung
Der von einem Prozess innerhalb eines bestimmten
Zeitintervalls benötigte Teil seines Adressraumes verändert
sich nur mehr oder weniger langsam.
Ursachen
•
•
•
•
sequentielle Arbeit eines VON-NEUMANN-Rechners
Programmcode enthält Zyklen
Programmierung in Modulen
Zugriff auf gruppierte Daten
Betriebssysteme WS 2012, Speicher
20
Hermann Härtig, TU Dresden
Virtueller Speicher − Begriff
Der virtuelle Speicher ist eine Technik, die jedem Prozess
einen eigenen, vom physischen Hauptspeicher
unabhängigen logischen Adressraum bereitstellt,
basierend auf
●
●
●
●
der Nutzung eines externen Speichermediums
einer Partitionierung von Adressräumen in Einheiten
einheitlicher Größe
einer Adressumsetzung durch Hardware (und
Betriebssystem)
einer Ein- und Auslagerung von Teilen des logischen
Adressraumes eines Prozesses durch Betriebssystem
(und Hardware).
Betriebssysteme WS 2012, Speicher
21
Hermann Härtig, TU Dresden
Eine denkbare Situation
Programm
Daten
BSS
Keller BS
unbenutzt, ungültig
gerade im Hauptspeicher
gerade nicht im Hauptspeicher, aber ein
gültiger Bereich – z. B. ausgelagert auf Platte
Betriebssysteme WS 2012, Speicher
22
Hermann Härtig, TU Dresden
Virtueller Speicher im Betriebssystem
Teilaufgaben
• Seitenfehler-Behandlung
• Verwaltung des Betriebsmittels Hauptspeicher
• Aufbau der Adressraumstruktur
(Speicherobjekte und Regionen)
• Bereitstellung spezifischer Speicherobjekte
• Interaktion Prozess- und Speicher-Verwaltung
Betriebssysteme WS 2012, Speicher
23
Hermann Härtig, TU Dresden
Wegweiser: Virtueller Speicher
Anliegen – Begriffe - Vorgehen
Adressumsetzung
Seitenersetzung
Arbeitsmengenmodell
Betriebssysteme WS 2012, Speicher
24
Hermann Härtig, TU Dresden
Seiten, Kacheln, Blöcke
Adressräume z. B. 4 GB
Seite
Kachel/Rahmen
Block
MMU
Hardware
Hauptspeicher
z. B. 512 MB
Betriebssysteme WS 2012, Speicher
BS
Software
Plattenspeicher
z. B. 200 GB
25
Hermann Härtig, TU Dresden
Rechnerarchitektur: Addressumsetzung etc.
CPU
E/AGeräte
V virtuelle Adresse
MMU
MEM
IO MMU
P physische Adresse
Aufgaben einer MMU (Memory Management Unit)
●
Abbildung: virtuelle → reale (physische) Adresse
●
Schutz bestimmter Bereiche (lesen/schreiben)
●
Betriebssystemaufruf bei abwesenden/geschützten Seiten
→ Seitenfehler (page fault)
●
Schutz der Adressräume untereinander
Betriebssysteme WS 2012, Speicher
26
Hermann Härtig, TU Dresden
Tanenbaum
Prinzipielle Arbeitsweise einer MMU
V 001010010110
virtuelle Adresse
physische Adresse
P
Betriebssysteme WS 2012, Speicher
MOS
27
Hermann Härtig, TU Dresden
Tanenbaum
Prinzipielle Arbeitsweise einer MMU
CPU
T4
V 001010010110
Seiten#
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
virtuelle Adresse
Offset
Seitentabelle
Kachel# Present Rechte
010
1
0
001
1
0
110
1
0
000
1
0
100
1
1
011
1
1
000
0
1
000
0
1
000
0
1
101
1
1
000
0
1
111
1
1
000
0
1
000
0
1
000
0
1
000
0
1
MOS
Zeiger
physische Adresse
P
Betriebssysteme WS 2012, Speicher
28
Hermann Härtig, TU Dresden
Tanenbaum
Prinzipielle Arbeitsweise einer MMU
CPU
T4
V 001010010110
Seiten#
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
virtuelle Adresse
Offset
Seitentabelle
Kachel# Present Rechte
010
1
0
001
1
0
110
1
0
000
1
0
100
1
1
011
1
1
000
0
1
000
0
1
000
0
1
101
1
1
000
0
1
111
1
1
000
0
1
000
0
1
000
0
1
000
0
1
MOS
Zeiger
Tabellenindex
110
physische Adresse
P
Betriebssysteme WS 2012, Speicher
29
Hermann Härtig, TU Dresden
Tanenbaum
Prinzipielle Arbeitsweise einer MMU
CPU
T4
V 001010010110
Seiten#
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
virtuelle Adresse
Offset
Seitentabelle
Kachel# Present Rechte
010
1
0
001
1
0
110
1
0
000
1
0
100
1
1
011
1
1
000
0
1
000
0
1
000
0
1
101
1
1
000
0
1
111
1
1
000
0
1
000
0
1
000
0
1
000
0
1
MOS
Zeiger
Tabellenindex
110
Kopie
Kachel#
Offset
P 1 1 0 1 0 0 1 0 1 1 0 physische Adresse
Betriebssysteme WS 2012, Speicher
30
Hermann Härtig, TU Dresden
Tanenbaum
Prinzipieller Aufbau eines Seitentabelleneintrags
MOS
caching disabled modified present
page frame number
referenced
protection
Seiten-Attribute
●
●
●
●
●
present
modified
used
caching
protection
Seite befindet sich im Hauptspeicher
schreibender Zugriff ist erfolgt („dirty“)
irgendein Zugriff ist erfolgt
ein/aus (z. B. wegen E/A)
erlaubte Art von Zugriffen in Abhängigkeit
von CPU-Modus
Betriebssysteme WS 2012, Speicher
31
Hermann Härtig, TU Dresden
Tanenbaum
Prinzipieller Aufbau eines Seitentabelleneintrags
MOS
caching disabled modified present
page frame number
referenced
protection
protection:
mode
operation
read
write
execute
kernel
user
Betriebssysteme WS 2012, Speicher
32
Hermann Härtig, TU Dresden
Virtueller Speicher: Hardware-Anteil
➔
Bei jedem Speicherzugriff:
Überprüfung von Präsenz und Rechten
Ablauf eines Seitenfehlers (exception):
• Zurücksetzen des auslösenden Befehls
• Umschaltung des Prozessormodus und des Kellers
• Ablegen einer Beschreibung des Zustandes, der
auslösenden Adresse und der Zugriffsart auf dem Keller
• Sprung in den Kern
→ Seitenfehlerbehandlung durch Betriebssystem
• iret (letzte Instruktion des Handlers)
Betriebssysteme WS 2012, Speicher
33
Hermann Härtig, TU Dresden
Beispiel
Beispiel
LDS
LES
MOV
REP
SI, [Adr. 1]
DI, [Adr. 2]
CX, Length
MOVSB
• bei Seitenfehler wird Zwischenzustand per HW
konsistent gehalten
• bei Rückkehr wird alles wiederhergestellt und Befehl
wiederholt
Betriebssysteme WS 2012, Speicher
34
Hermann Härtig, TU Dresden
Beispiel
Adressräume z. B. 4 GB
Seite
Kachel/Rahmen
MMU
Hardware
SI
CX: 4096
LDS
LES
MOV
REP
Hauptspeicher
z. B. 512 MB
Betriebssysteme WS 2012, Speicher
DI
35
SI, [Adr. 1]
DI, [Adr. 2]
CX, Length
MOVSB
Hermann Härtig, TU Dresden
Beispiel
LDS
LES
MOV
REP
SI
Betriebssysteme WS 2012, Speicher
DI
36
SI, [Adr. 1]
DI, [Adr. 2]
CX, Length
MOVSB
CX: 4096
Hermann Härtig, TU Dresden
Beispiel
LDS
LES
MOV
REP
SI
DI
SI, [Adr. 1]
DI, [Adr. 2]
CX, Length
MOVSB
CX: 2048
PAGEFAULT → BS-Kern
- besorge und fülle Kachel
- Eintrag in MMU
- iret
Restart instruction
Betriebssysteme WS 2012, Speicher
37
Hermann Härtig, TU Dresden
MMU-Probleme: Größe und Geschwindigkeit
Problem 1: Größe – ein Beispiel
Realspeicher :
256 MB
virtuelle Adressen:
32 Bit
Seitengröße:
4 KB
Aufteilung virt. Adr.: 20 Bit Index in der Seitentabelle
12 Bit innerhalb einer Seite (Offset)
➔
➔
Größe der Seitentabelle für einen Adressraum:
220 *4B → 4 MB
Bei 32 Prozessen 4*32 MB für die Seitentabellen !
Problem 2: Geschwindigkeit der Abbildung – ein Beispiel
CPU-Takt :
1 GHz → 2 Instruktionen in 1ns
(4 Speicherzugriffe)
Speichertakt:
256 MHz → 4ns ( ... 70ns)
Betriebssysteme WS 2012, Speicher
38
Hermann Härtig, TU Dresden
Problem 1: Baumstrukturierte Seitentabellen
CPU
T7
V PageDirIdx
Seitennummer
PageTableIdx
P
Kachelnummer
Zeiger
Betriebssysteme WS 2012, Speicher
Tabellenindex
39
Offset
Offset
Kopie
Hermann Härtig, TU Dresden
Eigenschaften baumstrukturierter Seitentab.
●
●
●
●
●
beliebig schachtelbar
→ 64-Bit-Adressräume!
Seitentabellen nur bei Bedarf im Hauptspeicher
bei Zugriff auf Seitentabelle kann Seitenfehler auftreten
Zugriff auf Hauptspeicher wird noch langsamer
2 oder mehr Umsetzungsstufen
Hierarchiebildung möglich (nächste Folie)
z. B. durch Schreibsperre in höherstufiger Tabelle ist
ganzer Adressbereich gegen Schreiben schützbar
Gemeinsame Nutzung („Sharing“) → später
Seiten und größere Bereiche in mehreren
Adressräumen gleichzeitig
Betriebssysteme WS 2012, Speicher
40
Hermann Härtig, TU Dresden
Hierchiebildung baumstrukturierte Seitentab.
CPU
T7
V PageDirIdx
PageTableIdx
Schreibschutz
sperrt eine
einzelne Seite
Schreibschutz
sperrt gesamten
durch eine
Untertabelle
definierten Bereich
P
Offset
Kachelnummer
Zeiger
Betriebssysteme WS 2012, Speicher
Tabellenindex
41
Offset
Kopie
Hermann Härtig, TU Dresden
Problem 2: Schnellere Abbildung
CPU
TLB
V virtuelle Adresse
V
P
1100
0110
1110
0001
1001
1000
MMU
P physische Adresse
0000
1101
1100
0010
0110
1101
MEM
Translation Look Aside Buffer (TLB)
●
●
schneller Speicher für schon ermittelte Abbildungen
virtueller auf reale Adressen (physische Adressen)
wird vor Durchsuchen der Seitentabellen inspiziert
Betriebssysteme WS 2012, Speicher
42
Hermann Härtig, TU Dresden
Per SW implementierte Seitentabellen
z. B. Alpha
●
Zugriff nur über TLB, bei TLB-Fehler („TLB-miss“) → Seitenfehler
●
Seitenfehlerbehandlung in SW lädt TLB neu
➔
Vorteil:
total flexibel
➔
Nachteil:
häufigere SW-Seitenfehlerbehandlung
Betriebssysteme WS 2012, Speicher
43
Hermann Härtig, TU Dresden
Nochmal Problem 1
Problem:
➔
riesige Seitentabellen auch bei
baumorientierten Seitentabellen
●
bei CPU mit großen Adressräumen (64-Bit-Adressen)
●
bei lose besetzten Adressräumen
V
CPU
P
T7
Betriebssysteme WS 2012, Speicher
44
Hermann Härtig, TU Dresden
Seitentabellen
Adressräume
Seite
Kachel / Rahmen
MMU
Hardware
Hauptspeicher
Betriebssysteme WS 2012, Speicher
45
Hermann Härtig, TU Dresden
Tanenbaum
Invertierte Seitentabellen
MOS
Adressräume
Seite
Kachel / Rahmen
MMU
Hardware
Bei Zugriff auf virtuelle Adresse
muss die Kacheln durchsucht
werden um herauszufinden,
in welcher Kachel die Seite steht
Hauptspeicher
Betriebssysteme WS 2012, Speicher
46
Hermann Härtig, TU Dresden
Tanenbaum
Vergleich der zwei Konzepte
Seiten-Kachel-Tabelle
Kachel-Seiten-Tabelle
Seiten#
0
1
2
3
4
5
6
7
8
Seiten#
Rahmen# Attribs
0001
0000
1001
0110
0111
1100
1101
0110
0010
...
Betriebssysteme WS 2012, Speicher
0
1
2
3
4
5
6
7
8
47
PID
1
1
1
2
7
1
1
2
Seiten# Attribs
0001
0000
1000
1000
0001
0000
!
0100
0010
...
Hermann Härtig, TU Dresden
MOS
Tanenbaum
Invertierte Seitentabelle
Grundidee
●
zu jeder Kachel wird Prozess-Id, Seitennummer geführt
●
bei Zugriff („TLB-miss“) wird gesucht
Implementierung als Hash-Tabellen (Hashed Page Tables)
●
●
Vorteile:

kleine Seitentabellen

abhängig von Anzahl Kacheln
unabhängig von Größe des Adressraums
Nachteile:

keine Hierarchiebildung (z. B. Schreibschutz für 4 MB)

Sharing aufwendig (→ später)

Suchaufwand
Betriebssysteme WS 2012, Speicher
48
Hermann Härtig, TU Dresden
MOS
Beispiel: 64-Bit MMUs - Itanium
region registers
RID0
RID1
RID2
RID3
RID4
RID5
RID6
RID7
V RRx
Virtual page# Offset
RID Virtual page# Physical page# Protection
„match“
Betriebssysteme WS 2012, Speicher
„deliver“
49
Hermann Härtig, TU Dresden
Itanium: Hardware Accessed Page Table
RID0
RID1
RID2
RID3
RID4
RID5
RID6
RID7
V RRx
Virtual page# Offset
virtual
hashed
page table
(VHPT)
Hash
Betriebssysteme WS 2012, Speicher
50
Hermann Härtig, TU Dresden
Überlappende Adressräume - „Sharing“
Seite
Kachel / Rahmen
Block
MMU
Hardware
Betriebssysteme WS 2012, Speicher
BS
Software
51
Hermann Härtig, TU Dresden
Sharing bei mehrstufigen Seitentabellen
identische
Inhalte der
Seitentabellen
Betriebssysteme WS 2012, Speicher
52
Hermann Härtig, TU Dresden
Sharing bei mehrstufigen Seitentabellen
Betriebssysteme WS 2012, Speicher
53
Hermann Härtig, TU Dresden
Spezieller Einsatz von Sharing
Verzögertes Kopieren (lazy copying, copy on write)
• „Kopieren“:
– Eintragen des zu kopierenden Bereichs an Zieladresse
– beide gegen Schreiben schützen
• „faules“ Kopieren:
– beim ersten schreibenden Zugriff → Seitenfehler
– Behandlung:

neue Kachel allokieren

physisch kopieren

neue Kachel ohne Schreibschutz in Seitentabelle
eintragen
➔
sehr wichtig für effiziente Botschaften, Rücksetzpunkte etc.
➔
gemeinsame Nutzung von Daten/Programmen
Betriebssysteme WS 2012, Speicher
54
Hermann Härtig, TU Dresden
Gemeinsames Nutzen von Daten
share
A
X
A
#
2
Attrib
p, rw
Y
Z
#
Attrib
2
p, rw
●
neuen MMU Eintrag an
Zieladresse
X
A
Z
Betriebssysteme WS 2012, Speicher
55
Hermann Härtig, TU Dresden
Echtes Kopieren
copy
A
X
A
#
Attrib
p, rw
22 p, rw
Z
#
●
neue Kachel besorgen
●
Kacheln kopieren
Attrib
●
5
p, rw
neuen Eintrag in die
Seitentabelle für Zieladresse
copy
Y
X A
A
Z
Betriebssysteme WS 2012, Speicher
56
Hermann Härtig, TU Dresden
Verzögertes Kopieren
lazy copy
A
X
A
#
2
Attrib
p,p,
r, cow
cow
rw
Y
Z
#
Attrib
2
p, r, cow
●
●
Ändern des MMU-Eintrags an
der Quelladresse: rw → (r, cow)
neuen MMU-Eintrag an
Zieladresse: (r, cow)
X
A
Z
Betriebssysteme WS 2012, Speicher
57
Hermann Härtig, TU Dresden
Verzögertes Kopieren
write
A
X
A
#
2
Attrib
p, r, cow
Y
Z
#
Attrib
2
p, r, cow
●
schreibender Zugriff →
Seitenfehler
X
A
Z
Betriebssysteme WS 2012, Speicher
58
Hermann Härtig, TU Dresden
Verzögertes Kopieren
write
A
X
A
#
2
Attrib
p, r, cow
Z
#
Attrib
5
p, rw
●
●
●
schreibender Zugriff →
Seitenfehler
Das cow-Attribut bewirkt, dass
eine neue Kachel allokiert und
der Inhalt physisch kopiert wird
neuen MMU-Eintrag an
Zieladresse: rw
copy
Y
X A
A
Z
Betriebssysteme WS 2012, Speicher
59
Hermann Härtig, TU Dresden
Verzögertes Kopieren
write
A
X
B
#
2
Attrib
p, r, cow
Z
#
Attrib
5
p, rw
●
●
●
●
Y
X B
A
schreibender Zugriff →
Seitenfehler
Das cow-Attribut bewirkt, dass
eine neue Kachel allokiert und
der Inhalt physisch kopiert wird
neuen MMU-Eintrag an
Zieladresse: rw
danach erfolgt der
Schreibzugriff
Z
Betriebssysteme WS 2012, Speicher
60
Hermann Härtig, TU Dresden
Verzögertes Kopieren
write
A
X
B
#
2
Attrib
p, r, cow
Y
Z
#
Attrib
5
p, rw
●
➔
schreibender Zugriff →
Seitenfehler
ist der Prozess der alleinige
Besitzer der Kachel, wird lediglich
das Schreibrecht gesetzt
X B
A
Z
Betriebssysteme WS 2012, Speicher
61
Hermann Härtig, TU Dresden
Verzögertes Kopieren
write
C
X
B
#
2
Attrib
p, rw
Z
#
Attrib
5
p, rw
●
➔
●
Y
schreibender Zugriff →
Seitenfehler
ist der Prozess der alleinige
Besitzer der Kachel, wird lediglich
das Schreibrecht gesetzt
danach erfolgt der Schreibzugriff
X B
C
Z
Betriebssysteme WS 2012, Speicher
62
Hermann Härtig, TU Dresden
Verzögertes Kopieren großer Bereiche
lazy copy
Betriebssysteme WS 2012, Speicher
63
Hermann Härtig, TU Dresden
Verzögertes Kopieren großer Bereiche
cow
Betriebssysteme WS 2012, Speicher
cow
64
Hermann Härtig, TU Dresden
Verzögertes Kopieren großer Bereiche
cow
cow
cow
cow
cow
co
w
Betriebssysteme WS 2012, Speicher
65
Hermann Härtig, TU Dresden
Verzögertes Kopieren großer Bereiche
cow
cow
cow
r
cow
cow
Betriebssysteme WS 2012, Speicher
66
Hermann Härtig, TU Dresden
Sharing und invertierte Seitentabellen
Adressräume
Seite
Kachel / Rahmen
MMU
Hardware
schwierig, da nur eine
virtuelle Adresse pro Kachel
Hauptspeicher
z. B. 512 MB
Betriebssysteme WS 2012, Speicher
67
Hermann Härtig, TU Dresden
Herunterladen