Speicherverwaltung

Transcrição

Speicherverwaltung
Speicherverwaltung
Robert K. Akakpo
CNAM, WS 2010/2011
Agenda
g
„ Grundlagen
„ Monoprogrammierung
„ Mehrprogrammbetrieb
„ Virtuelle Speicherverwaltung
CNAM, WS 2010/2011
Grundlagen
• Die verschiedenen Arten von Speicher
CNAM, WS 2010/2011
Grundlagen
• Damit ein Computer ein Programm ausführen kann, muss sich das Programm
in einem Speicher befinden, auf den die CPU direkt zugreifen kann.
p
muss so g
groß sein, dass das entsprechende
p
((Teil-)) Programm
g
in
• Der Speicher
ihm Platz hat.
• Nur der Hauptspeicher erfüllt beide Bedingungen
• Nachteile des Hautpspeichers:
- langsam
- flüchtig
- nicht gross genug
Îhierarchische Organisation der Speicherarten als Lösung
CNAM, WS 2010/2011
Speicherhierarchie
Zugriffszeit
Größe
0,5 nsec
~2 kb
0,5 - 1 nsec
20 - 50 nsec
8 - 64 kb
bis 1 GB
¾ Unterschied
U t
hi d zwischen
i h d
den
verschiedenen Speicherarten drückt
sich aus in
- Kosten
K t
8- 15 msec
bis 1 TB
- Performance
PC Stand Juni 2002
CNAM, WS 2010/2011
Speicherverwaltung
• MemoryManager: das für Speichermanagement verantwortliche Betriebssystemteil
• Aufgaben der Speicherverwaltung
- Bereitstellung und Zuteilung von Speicher an Prozesse,
Prozesse ggf Entzug
- Effiziente Organisation freier und belegter Speicherbereiche
g von Beschränkungen
g ((Virtualisierung)
g)
- Verbergen
- Schutz vor fehlerhaften / unerlaubten Zugriffen
- Datenverschiebung zwischen den Speicherhierarchien
• Strategien der Speicherverwaltung
- Monoprogrammierung
- Multiprogrammierung
CNAM, WS 2010/2011
Monoprogrammierung
• die einfachste Speicherverwaltungsstrategie
• nur ein Prozess im freien RAM
- einem einzelnen Programm wird ein fester zusammenhängender Bereich
(Speicherzellen) zugeteilt
--> direkte Adressierung, d.h. Programmadresse = reale Speicheradresse
Beispiel: mov Register1, 1000
- kein Speicherschutz
• Benutzerprogramm kann seinen Speicherbedarf selber organisieren
z B Overlay von Programmen (Programm wird in mehreren Phasen geladen)
z.B.
• Einsatzgebiet: frühe Batchsysteme, eingebettete Systeme
CNAM, WS 2010/2011
Monoprogrammierung
Betriebsystem
im ROM
Gerätetreiber
im ROM (BIOS)
Benutzerprozess
Benutzerprozess
Benutzerprozess
Betriebsystem
im RAM
Mainframe
Microcomputer
bis 1960
Betriebsystem
im RAM
Eingebetete
Systeme
PC vor 1980
CNAM, WS 2010/2011
Multiprogrammierung
• Motivation
- Hauptspeicher besteht aus mehr als zwei Teilen (dynamische Aufgabe der
Speicherverwaltung
- Hauptspeicher muss mehreren Prozessen gleichzeitig zur Verfügung gestellt
werden
• Einfache Speicherverwaltungstechniken
- Mehrere Prozesse werden vollständig im Hauptspeicher gehalten
¾ Aufteilung des Hauptspeichers in Partitionen fester oder variabler Größe
für jeden Prozess. Anzahl der Partitionen ist fest
--> statische Speicherverwaltung
¾ Einteilung des Speicher in dynamische Partitionen
--> dynamische Speicherverwaltung
- Relokation / Swapping (Auslagern und Wiedereinlagern ganzer Prozesse aus und
in den Speicher) als Beispiele dynamischer Speicherverwaltung
CNAM, WS 2010/2011
Partitionierung
g
• Feste Partitionen mit gleicher Größe
Problem:
- Viel zu große Programme sind ausgeschlossen
¾ alternativ: Programmerstellung durch Overlays nötig
- Viel zu kleine Programme verschwenden Speicher
¾ Interne
I t
Fragmentierung:
F
ti
Teile
T il der
d Partitionen
P titi
bl
bleiben
ib unbenutzt
b
t t
- Einsatz im OS/360 von IBM: MFT
CNAM, WS 2010/2011
Partitionierung
g
• Feste Partitionen mit unterschiedlicher Größe
- Programme in die am besten passende Partitionen
- Eine oder mehrere Warteschlangen zur Verwaltung des Speichers
¾ Best-Fit mit einer Prozess-Queue pro Partition
¾ Eine Prozess-Warteschlange
Prozess Warteschlange für alle Partitionen (Best
(Best-Fit
Fit sonst First-Fit)
First Fit)
- Problem: externe Fragmentierung: einzelne, nicht zugewiesene Speicherbereiche
sind zu
klein, um die Anforderungen wartender Prozesse erfüllen zu können.
- Einsatz im OS/360 von IBM: MVT
CNAM, WS 2010/2011
Partitionierung
g
Verwaltung fester Partitionen
Partition 4
Partition 4
Partition 3
Partition 3
Partition 2
Partition 2
getrennte Warteschlangen
für jede Partition
kommt ein Auftrag,
kann er an die
Warteschlange für die
kleinste Partition
angehängt werden, die
groß genug für ihn ist.
eine
i gemeinsame
i
Warteschlange
W
hl
für alle Partitionen
Partition 1
Betriebssystem
Best-Fit sonst First-Fit
Partition 1
Betriebssystem
CNAM, WS 2010/2011
Partitionierung
g
• Dynamische Partitionierung
- Einteilung des Speichers in Partitionen variabler Länge und variabler Anzahl
- Programm erhält genau so viel Speicher wie es benötigt und nicht mehr
OS
128 K
OS
128 K
OS
128 K
OS
P1
350 K
P1
350 K
P1
350 K
P2
224 K
P2
224 K
Konsequenzen:
322 K
P3
256 K
™ Zunehmende externe
896 K
546 K
128 K
66 K
g
g
Fragmentierung
™ Dynamische Relokation
OS
P1
128 K
350 K
OS
P1
128 K
350 K
OS
P1
128 K
350 K
OS
128 K
P2
224 K
erforderlich
126 K
P2
P3
224 K
256 K
66 K
P4
160 K
P4
64 K
P3
256 K
66 K
160 K
P4
160 K
64 K
P3
256 K
64 K
P3
256 K
66 K
66 K
CNAM, WS 2010/2011
Relokation und Speicherschutz
p
• Programme werden an unterschiedlichen Stellen im Hauptspeicher ausgeführt
• Beim Laden des Programms in eine Partition müssen die Adressen angepasst werden,
welche
im Programmcode enthalten sind.
Dies ist möglich durch Liste in Programmdatei, die
angibt wo sich Adressen im Code befinden
angibt,
• Realisierung: nur mit Hardwareunterstützung möglich: CPU mit zwei speziellen,
privilegierten Registern ausgestattet:
- Basisregister: Anfangsadresse der Partition
- Limitregister: Länge des Programms
- Register werden vom Betriebssystem beim Prozesswechsel aktualisiert
• Funktionsweise: bei jedem Speicherzugriff:
- Vergleich logische Adresse mit dem durchs Limitregister bestimmten Wert
Falls Adresse ≥ Wert --> Fehler
- sonst wird Basisregister zur logischen Adresse addiert
- somit wird verhindert
verhindert, dass ein Prozess auf Partitionen anderer Prozesse zugreifen
kann
• Beispiel: CDC 6600, Intel 8088
CNAM, WS 2010/2011
Swapping
pp g
• einfache Speicherverwaltung mit dynamischer Partitionierung
• Prinzip
- (blockierte) Prozesse werden auf die Festplatte ausgelagert
p
in den Hauptspeicher
p p
eingelagert
g g
- wartende Prozesse werden von der Festplatte
- jeweils vollständiger Prozess als Ganzes
- im Betriebssystem realisierbar ohne zusätzliche Hardwareunterstützung
- Betriebssystemscheduler sogt fürs Ein- und Auslagern
- wurde von MS Windows 3.* benutzt, um Prozesse auszulagern und bei UNIXy
Systemen
• Probleme: Ein- und Auslagern ist sehr zeitaufwendig
• Anforderung von freiem Speicher: bei Neustart eines weiteren Prozesses bzw. zur
Laufzeit
eines Prozesses (Subprozess); auch dynamisches Anfordern
• Anforderung hat nur selten genau die Größe eines freien Speicherbereiches
p
p
g ist notwendig,
g um ((dynamisch)
y
) neue Prozesse in
• Freispeicherplatzverwaltung
freigegebene Speicher effizient zu laden
CNAM, WS 2010/2011
Swapping
pp g
• Speicherbelegungsstrategien: ein Beispiel
Anforderung 16 K
8K
8K
14 K
14 K
24 K
First-Fit
FF
8K
Letzter alloziierter Block (14 K)
8K
8K
10 K
10 K
BF
Next-Fit
NF
38 K
18 K
22 K
Best-Fit
BF
2K
CNAM, WS 2010/2011
Fazit
• Nachteile der bisherigen Konzepte
- Prozess komplett im Hauptspeicher, obwohl oft nur ein kleiner Teil benötigt wird
- Platz für Programme und Daten ist durch Hauptspeicherkapazität begrenzt
- zusammenhängende Speicherbelegung für einen Prozess verschärft
Fragmentierung
- Speicherschutz muss vom Betriebssystem explizit implementiert werden
• Lösung: virtueller Speicher
- Prozessen mehr Speicher zuordnen als eigentlich vorhanden
- nur bestimmte Teile der Programme werden in Hauptspeicher geladen
- Rest wird auf dem Hintergrundspeicher (Festplatte) abgelegt
- Prozesse werden ausgeführt, obwohl nur zum Teil im Hauptspeicher eingelagert
- physischer Adressraum wird auf einen virtuellen (logischen) Adressraum abgebildet
CNAM, WS 2010/2011
Virtuelle Speicherverwaltung
p
g
• Grundlage
G
dl
- Virtueller Speicher: strikte Trennung zwischen logischem (virtuellem) und
physischem (realem) Speicher
- Adressraum, den die Befehle des Prozessors referieren, ist der logische
Adressraum
g des virtuellen Speichers
p
ist zwischen CPU-Adressbus und
- zur Realisierung
Speicher eine programmierbare Memory Management Unit (MMU) geschaltet.
- Idee: bei jedem Speicherzugriff wird die vom Prozess erzeugte logische Adresse
physische
y
Adresse abgebildet
g
durch MMU
auf eine p
¾ logische Adresse (virtuelle Adresse): Adresse, die ein
Maschinenspracheprogramm sieht (CPU-Sicht)
¾ Physische Adresse
Adresse, tatsächliche Adresse im Speicher (MMU
(MMU-Sicht)
Sicht)
• Techniken
g g ((wichtigste
g
Technik))
- Paging
- Segmentierung
CNAM, WS 2010/2011
Paging
g g
• Prinzip
- ein Programm wird in Seiten fester Größe (Pages) aufgeteilt
- der reale Hauptspeicher wird in Seitenrahmen (Frames / Kachel) fester Größe
aufgeteilt
- jeder Kachel kann eine Page aufnehmen
- Seiten können nach Bedarf in freie Kachel (im Hauptspeicher) eingelagert werden
- die Zuordnung von Seiten zu Seitenrahmen übernimmt die Memory Management
Unit (MMU) mit Hilfe einer Seitentabelle (page table),
die vom BS erstellt und
Seitenrahmennr.
0
aktualisiert wird
1
Page 0
Page 0
0
1
2
Page 1
1
4
3
Page 2
2
3
4
Page
g 1
3
7
5
Page 2
6
Page 3
Seitentabelle
Virtueller Speicher
7
Page 3
ph sischer Speicher
physischer
CNAM, WS 2010/2011
Paging
g g
• Adressumsetzung mittels Seitentabelle: Funktion der MMU
- eine Seitentabelle enthält zusätzlich zur Seitennummer als Index
Seitendeskriptoren
¾ Seitenrahmennummer (physische Adresse der Seite im Hauptspeicher)
¾ Presence-Bit (P-Bit): ist die Seite im Speicher?
¾ Schutzbits (regeln Art des Zugriffs)
¾ Referenced-Bit (R-Bit), Dirty-Bit (D-Bit), Cache-Disable-Bit (C-Bit)
- eine Adresse wird immer als 2-Tupel aufgefasst
¾ Seitennummer (welche Seite im virtuellen Adressraum ist gemeint?)
¾ Offset (welche Adresse in der Seite ist gemeint?)
- Die MMU interpretiert die niederwertigsten Bits einer virtuellen Adresse als Offset,
die höherwertigen
ö
Bits legen die S
Seite ffest
- Presence-Bit auf 1 gesetzt ⇔ Seitenrahmennummer vorhanden
¾ MMU hängt das Offset der virtuellen virtuelle an Seitenrahmennummer
CNAM, WS 2010/2011
Paging
g g
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
ausgehende
physische
Adresse (24580)
Virtuelle
Ad
Adresse
15
14
Seitentabelle
000
0
000
0
13
000
0
12
11
000
111
0
1
10
000
0
9
8
101
1
000
7
000
000
0
0
6
0
5
4
3
011
1
100
1
000
1
2
110
001
010
1
1
1
0
110
present/a
bsent bit
1
Virtuelle Seite = 2
0
0 1
0 0
0
0
0
0
0
0
0
0
1
0
0
ankommende
k
d
virtuelle
Adresse (8196)
CNAM, WS 2010/2011
Paging
g g
• Paging - Verfahren
- die Umsetzung der virtuellen Adresse erfolgt dynamisch
- um für die momentan arbeitenden Prozesse genügend Platz zu haben, werden
nicht
benötigte Seiten auf den Hintergrundspeicher ausgelagert
- wird eine Seite benötigt, die nicht im Hauptspeicher sondern nur auf dem
Hintergrundspeicher lagert, so tritt ein Seitenfehler (page faults) auf
¾ die benötigte Seite muss in den Hauptspeicher geladen werden
--> Laden nach Bedarf (demand paging)
¾ falls der Hauptspeicher schon voll ist, muss eine bzw. mehrere geeignete
Seiten ausgelagert werden
¾ Abschließend wird die Seitentabelle entsprechend aktualisiert
- Aktionen des Betriebssystem bei Seitenfehlern: Seitenersetzung
¾ Welche Seite kann zuerst entfernt werden?
--> unterschiedliche Strategien zur Seitenersetzung
CNAM, WS 2010/2011
Paging
g g
• Seitenersetzungsstrategien: Beispiele
Algorithmus
Beschreibung
First-In First-out (FIFO)
Die Seite wird entfernt, die sich am längsten im Hauptspeicher
befindet
Not Recently Used (NRU)
Ausgelagert wird die Seite, die im letzten Zeitintervall (z.B. 20 ms)
nicht referenziert wurde:
Second Chance
Second-ChanceAlgorithmus
Hamburg
Verbesserung von FIFO:
Überprüfung des R-Bit
R Bit der älteren Seite. R
RAmsterdam
Bit nicht gesetzt: kein Zugriff, Seite wird entfernt
Düsseldorf
Clock-Algorithmus
g
Berlin
Verbesserung Second-Chance-Algorithmus.
Seiten in Form
Frankfurt
einer virtuellen Uhr mit Zeigern
g
abgebildet.
g
Zeiger
g auf älteste
Stuttgart
Seite
Least Recently Used (LRU) die am längsten nicht benutzte Seite wird entfernt
Softwaretechnische Implementierung von LRU: ausgelagert wird die
Not Frequently Used (NFU) am wenigsten benutzte Seite
Madrid
Working-Set
g
Algorithmus
g
die wenigen, für einen Prozess relevanten Seiten identifizieren und
stets prozessfremde Seiten auslagern
WSClock-Algorithmus
Kombination aus Clock und Workingset
in realen Systemen weit verbreitet
CNAM, WS 2010/2011
Paging
g g
•
Implementierung
-
Realisierungsprobleme:
ƒ
Die Adressabbildung muss sehr schnell sein.
ƒ
Die Umsetzungstabelle kann extrem groß werden
werden. (z
(z.B.
B 32
32-Bit
Bit Adressen
erfordern bei einer Seitengröße von 4096 Bytes eine Tabelle mit ca. 1 Million
Einträgen.)
-
Hardwareunterstützung erforderlich
erforderlich, um
1. Informationen zur Seitenpräsenz und -gültigkeit, Zugriffshäufigkeit,
Schreibzugriffen und Zugriffsschutz zu speichern
2. die Adressumsetzung zu beschleunigen
-
Lösungsansätze: unterschiedliche Organisationsformen der Seitentabelle
™
Naive Lösung: Eine einzige Seitentabelle in der MMU --> Spezialregister
(sehr aufwändig wegen Taskwechsel)
™
Seitentabelle im Speicher und ein Cache (TLB - Translation Lookaside
Buffer) in der MMU zur Beschleunigung der Adressumsetzung
™
Populäre Lösung: mehrstufige Seitentabelle bzw. invertierte Seitentabelle im
Hauptspeicher zur Einschränkung der Größe
CNAM, WS 2010/2011
Paging
g g
•
Translation Lookaside Buffer (TBL):
-
Seitentabellen liegen im Speicher --> für jeden Speicherzugriff mehrere
zusätzliche Zugriffe für Adressumsetzung nötig
-
Optimierung: MMU hält kleinen Teil der Adressabbildung in einem internen
Cache-Speicher: TLB
-
Beispiel TBL Einträge:
-
Moderne Implementierung: Verwaltung des TBL durch Software
:
CNAM, WS 2010/2011
Paging
g g
-
Adressumsetzung: wenn Seitennummer im TBL --> Kachelnummer.
-
MMU erzeugt Fehler, falls für eine Seite kein TLB-Eintrag vorliegt
-
Fehlerbehandlung durchs Betriebssystem: Durchsuchen der Seitentabellen im
Speicher und Ersetzen eines TLB-Eintrags
-
wird in vielen RISC-Architekturen verwendet, z.B. SPARC, MIPS, Alpha
CPU
Logische
L
i h
Adresse
p d
SeitenSeitentabelleneintrag
Nr.
TLB-Treffer
Physische
y
Adresse
f
d
TBL
p
TBL- Fehlschlag
f
Seitenfehler
Hauptspeicher
Seitentabelle
CNAM, WS 2010/2011
Paging
g g
•
mehrschichtige Tabellen
-
-
Motivation:
¾
Speicherplatzbedarfsproblem: z.B. bei virtuellen Adressen mit 32 Bit
Länge: 220 Seiten --> für jeden Prozeß wäre eine 4 MB große Tabelle
nötig. Typische Windows-Installationen haben 30-60 Prozesse
gleichzeitig am Laufen --> Platzbedarf für Umsetzungstabellen: 120 bis
240 MB !
¾
Alle Seitentabellen werden nicht mehr gleichzeitig im Speicher gehalten
werden
Adressumsetzung: findet in mehreren Ebenen statt
Die virtuelle Adresse wird in mindestens 2 Komponenten aufgeteilt. Mit der
ersten Komponente wird ein Seitentabelleneintrag indexiert, dessen Pointer auf
eine weitere Seitentabelle zeigt, welche mit der nächsten Komponente indexiert
wird.
Die letzte Komponente identifiziert die physikalische Adresse.
-
wird von vielen 32 Bit Architekturen verwendet, wie bei IA32 (2-stufig), Motorola
MC68030 (4-stufig) und SPARC (3-stufig)
-
Problem: mehrschichtige Tabellen sind langsam, da Zugriff auf mehrere
Tabellen notwendig. Unterstützung mit TBL
CNAM, WS 2010/2011
Paging
g g
Mehrstufige Seitentabelle: hier zweistufig
31 ... 22
21 ... 12
11 ... 0
Index im Seitenverzeichnis (engl
(engl. page directory
directory, kurz: PD)
Index in der Seitentabelle (engl. page table, kurz: PT)
Offset in der Speicherseite
CNAM, WS 2010/2011
Paging
g g
•
invertierte Tabellen
-
Hintergrund: Mehrstufige Seitentabellen für 64-bit Architekturen nicht geeignet
-
Umsetzung: Seitentabellen, die statt Einträge für virtuelle Seiten, Einträge für
Seitenrahmen enthalten. Jeder Eintrag speichert zu dem Seitenrahmen das
zugehörige Paar (Prozess p, Seitennummer n)
¾
bei herkömmlichen Seitentabellen: Umsetzungstabelle pro Prozess
¾
Jetzt: nur eine Umsetzungstabelle im System
-
Nachteil: Adressumsetzung sehr aufwendig, da virtuelle Seitennummer nicht als
Index verwendbar
-
für jeden Speicherzugriff ist eine Suche nach (p,n) nötig
-
Zur Beschleunigung der Suche: Verwendung einer schnellen Suchtechnik:
Hashing
-
Zur Beschleunigung der Suche: TLB wird verwendet.
-
Werden in PowerPC, IBM AS/400 und Intel-Itanium-Prozessoren genutzt
CNAM, WS 2010/2011
Paging
g g
Aufbau inverterte Seitentabelle
Virtuelle Adresse
Seitennr.
Reale Adresse
Offset
Wert vi : Seitenrahmennummern
Offset
Zeiger
Seitennr. Eintrag Überlaufkette
ki
Schüssel ki : Seitennummern
Rahmennr.
Hashfunktion
kj
vj
h
H(ki)
ki
Rahmennr.
Invertierte
Seitentabelle
CNAM, WS 2010/2011
Paging
g g
• Design-Strategien für Paging
- was ist für ein leistungsstarkes Paging System nötig?
- Einige Strategiebeispiele:
ƒ lokale und Globale Strategien
ƒ Nutzung Gemeinsamer Seiten
ƒ Freigabe-Strategien
ƒ Seitengröße
Hamburg
Amsterdam
Düsseldorf
Berlin
Frankfurt
Stuttgart
Madrid
CNAM, WS 2010/2011
Paging
g g
• Lokale und Globale Strategien
- lokale Strategien: bei Seitenfehler wird immer eine Seite desjenigen Prozesses
ersetzt, der eine neue Seite anfordert
¾ jeder Prozess bekommt eine konstante Anzahl von Seiten zugewiesen
Seitenfehler wirken sich daher nur auf den verursachenden Prozess negativ aus.
- globalen Strategien: eine beliebige Seite im Speicher wird bei Seitenfehler ersetzt
Hamburg
¾ jeder Prozess wird mit einer sinnvollen Speichergröße ausgestattet,
ausgestattet welche
Amsterdam
während der Ausführung dynamisch angepasst
wird. Der Prozess, der viele
Berlin
Düsseldorf
Seitenfehler verursacht, erhält automatisch mehr Speicher
Frankfurt
-> effizient, da ungenutzte Seiten von anderen Prozessen verwendet werden
können
Stuttgart
¾ Beispiel: der Page Fault Frequency (PFF) Algorithmus zur Messung der
Anzahl der Seitenfehler eines Prozesses in einem Zeitinterval
zu hohe Seitenfehlerrate: mehr Speicher zuteilen
zu niedrige Seitenfehlerrate: Speicher wegnehmen
Madrid
- manche Seitenersetzungs-Algorithmen für lokale und globale Strategien anwendbar
(FIFO, LRU)
- andere nicht (Workingset, WSClock)
CNAM, WS 2010/2011
Paging
g g
• Nutzung gemeinsamer Seiten
- Führen zwei Prozesse das selbe Programm aus, ist es effizienter Seiten gemeinsam
zu nutzen, als mehrere Kopien der selben Seite im Speicher zu halten.
- Seiten, auf die nur lesend zugegriffen wird (z. B. Code), können gemeinsam genutzt
werden.
- bei Seiten, auf die auch schreibend zugegriffen wird, ist eine gemeinsame Nutzung in
der Regel nicht möglich (z. B. Daten).
Hamburg
Amsterdam
- Einfache Lösung: Zwei getrennte Adressräume
Berlinfür Daten und Programmcode.
Düsseldorf
ƒ für zwei bzw. mehr Prozesse eine
gemeinsame Seitentabelle für Code
Frankfurt
ƒ getrennte Seitentabellen für den
Datenraum.
Stuttgart
- Betriebssystem muss gemeinsame Seiten berücksichtigen
Madrid
CNAM, WS 2010/2011
Paging
g g
• Freigabe-Strategien
- Voraussetzung fürs gutes Paging: genügend freie Seitenrahmen verfügbar
- Wenn alle Seitenrahmen voll sind und eine gebraucht wird --> Auslagerung
- Eventuell muss auszulagernde Seite noch zurückgeschrieben werden
werden. Das dauert!
- Lösung: vorbeugen durch Paging-Daemon
- Paging-Daemon ist ein Prozess im Hintergrund,
meist inaktiv
Hamburg
Amsterdam
- er wacht regelmäßig auf und prüft Speicherzustand
Berlin
Düsseldorf
- falls nicht genug freie Rahmen --> Paging-Daemon
wählt Seiten aus und beginnt sie
Frankfurt
auszulagern
Stuttgart
- Bei einem Seitenfehler ist dann immer ein freier Rahmen verfügbar
- somit wird die Performance gesteigert
Madrid
CNAM, WS 2010/2011
Paging
g g
• Seitengöße
- wie groß muss die Seite (Kachel) sein, damit Paging optimal ist?
- folgende Punkte sprechen für große Seiten:
™ Je größer die Seiten
Seiten, desto kleiner die Seitentabelle
Seitentabelle, weniger
Verwaltungsaufwand
--> Speicher kann gespart werden
™ Die Übertragung von großen Seiten ist effektiver, denn der Aufwand für das
Hamburg
Einund Auslagern von Seiten ist sehr groß.
groß Es ist besser einmal 4 KB zu
Amsterdam
übertragen als 4x1 KB
Berlin
Düsseldorf
- für kleine Seiten spricht, daß diese nicht
soviel Speicher verschwenden.
Frankfurt
- Am häufigsten werden 4 KB oder 8 KB
große Seiten verwendet
Stuttgart
Madrid
CNAM, WS 2010/2011
Danke
CNAM, WS 2010/2011

Documentos relacionados