3. Speicherverwaltung 3.1 Grundlegendes

Werbung
3. Speicherverwaltung
• Überblick
3.1
3.2
3.3
3.4
3.5
Grundlegendes
Seitenersetzungsstrategien
Speicherverwaltung unter Linux
Speicherverwaltung unter Windows
Leistungsaspekte des virtuellen Speichers
O. Kao
Betriebssysteme
3-1
3.1 Grundlegendes
• Adressräume
Zusammenhängende Menge von Speicheradressen und deren Inhalte
Abbildung Virtueller → Physikalischer Speicher zur Laufzeit mit MMU
• Dynamische Speicherallokation
Prozessteile werden – transparent für den Benutzer – zur Laufzeit und
erst bei Bedarf ein- und ausgelagert
Beim Zugriff auf einen fehlenden Inhalt wird ein Interrupt
(Seitenfehler) ausgelöst, der das Nachladen des Inhalts initiiert
Voraussetzung: Relokierbare Prozesse, d.h. Verdrängung und
Ausführung an anderer Stelle ohne zusätzlichen Programmieraufwand
• Adressierungsarten
Seitenadressierung
Segmentadressierung
Segmentadressierung mit Seitenadressierung
O. Kao
Betriebssysteme
3-2
Umsetzung der Seitenadressierung
Seitenlänge 4K ⇒ 12 Bit
für Wortadresse
O. Kao
Betriebssysteme
3-3
Mehrstufige Seitentabellen
• Teil der Seitentabellen wird
ausgelagert, da i.d.R zwischen
Heap und Stapel ungenutzte
Speicherbereiche liegen
• Realisierung durch Aufteilung z.B.
einer 32 Bit Adresse in 3 Bereiche
Second Level
10 10 12
PT1 PT2 Offset
Top Level
PT 1: 10 Bit, Startadresse der
Seitentabelle
PT 2: 10 Bit, Startadresse der
entsprechenden Seite (je 4 KByte)
Offset: 12 Bit, Wortadresse
innerhalb der Seite
Grau = derzeit
• Hier: Trotz über 1 Million möglicher nicht genutzt
Adressen, werden nur 4 Seitentabellen tatsächlich gebraucht
O. Kao
Betriebssysteme
3-4
3.2 Seitenersetzungsstrategien
• Wichtig für dynamische Speicherallokation
Wann werden Daten in den Speicher geladen (Nachschubstrategie)
Wann müssen Prozessdaten aus dem Speicher verdrängt werden
(Verdrängungsstrategie)
• Nachschubstrategien
Auf Verlangen (demand paging): Laden der Seite bei Bedarf
Interrupt Seitenfehler (page fault) aktiviert die Allokation
Vorgeplant (Pre-paging): Prozessverhalten ist im Voraus bekannt
Seite steht zum Referenzierungszeitpunkt zur Verfügung
Kenntnis über exaktes Programmverhalten meist nicht verfügbar
Kombinierte Ansätze (Meist in Praxis verwendet)
Beim Start Pre-paging, z.B. Anfang des Programmcodes, statische
Daten, Seiten für Heap und Stapel, …
Während Laufzeit: Demand paging
O. Kao
Betriebssysteme
3-5
Verdrängungsstrategien
• Verdrängung der Seite, die
Am längsten im Speicher war (First In - First Out, FIFO)
Am längsten nicht benutzt wurde (Least Recently Used, LRU)
Am wenigsten häufig benutzt wurde (Least Frequently Used, LFU)
Innerhalb eines vorgegebenen Zeitraums nicht mehr referenziert
wurde (Recently Not Used, RNU)
• Probleme bei der Realisierung durch aufwendige Operationen
(Stapeloperationen, Zählerinkrementierung, …) ⇒ Nutzung von
Annäherungsverfahren
• Hardwareunterstützung beim Seitenzugriff
Jeder Seite wird ein Referenzbit zugeordnet
Die Referenzbits werden bei jedem Zugriff aktualisiert
Keine Information über den Zeitpunkt eines Zugriffs
• Second-Chance-Algorithmus (Clock-Algorithmus)
O. Kao
Betriebssysteme
3-6
Working Set
• Working-Set (Arbeitsbereich)
Menge von Seiten Wi (t,τ), auf die ein Prozess i innerhalb der
letzten τ Einheiten ab dem Zeitpunkt t zugegriffen hat
rt-τ-1 rt-τ
rt-τ+1
rt-3
rt-2
rt-1
rt
Working-Set der Länge τ
• Exakte Verfahren z.B. mit einem Schieberegister, in dem die letzten
k Seiten gespeichert werden, zu aufwendig
• Annäherung
Verwendung der Ausführungszeit des Prozesses ⇒ Working Set = Seiten,
auf die innerhalb der τ Einheiten zugegriffen wurde
Wichtig: nur die eigene Ausführungszeit eines Prozesses zählt (virtuelle
Zeit, current virtual time)
O. Kao
Betriebssysteme
3-7
Realisierung des Working-Sets
• Jeder Eintrag in der Seitentabelle enthält mindestens
Referenzbit (R)
Modifikationsbit (M)
Ungefähre Zeit des letzten Zugriffs
• Basierend auf einer Timerunterbrechung werden die R-Bits in
regelmäßigen Abschnitten auf 0 (kein Zugriff) zurückgesetzt
• Bei jedem Zugriff wird das R-Bit untersucht und falls gesetzt –
Seite im Speicher – wird die Zugriffszeit aktualisiert
• Bei Auslagerung wird die Seite mit Referenzbit 0 und ältester
Zugriffszeit ausgewählt
• Realisierung des Verfahrens umständlich, da bei jedem
Seitenfehler die gesamte Seitentabelle durchsucht werden muss
O. Kao
Betriebssysteme
3-8
Algorithmus Working-Set
2204
Aktuelle virtuelle Zeit
.
:
Zeitpunkt der letzten
Verwendung
In diesem Zyklus
referenzierte Seite
In diesem Zyklus nicht
referenzierte Seite
2084
1
2003
1
1980
1
1213
0
2014
1
2020
1
2032
1
1620
0
Seitentabelle
O. Kao
Referenzbit R
Scanne alle Seite und untersuche das
Referenzbit
Falls (R==1) ⇒ setze Zeit des
letzten Zugriffs = Aktuelle virtuelle
Zeit
Falls (R==0 und Alter > τ) ⇒
Entferne die Seite und aktualisiere
die restlichen Zeiten in der Tabelle
Falls (R==0 und Alter ≤ τ) ⇒
Merke die Seite mit ältester
virtueller Zeit
Betriebssysteme
3-9
Effizientere Ausführung:
WSClock-Algorithmus
• WSClock-Algorithmus als Erweiterung des Clock-Algorithmus
Ringförmige Liste der Kacheln, jeder Eintrag mit mindestens R-Bit, M-Bit
und letzter Zugriffszeit
Beim Seitenfehler: Untersuche zuerst die mit dem Zeiger markierte Seite
Falls R=1 ⇒ Setze R=0, verschiebe den Zeiger zur nächsten Kachel
Falls R=0 ⇒ Auslagerungskandidat
Falls Zugriff älter als τ ⇒ untersuche Modifikationsbit
Falls M=0 (kein Schreibzugriff) ⇒ Verdränge Seite
Falls M=1 ⇒ Inhalt muss auf Festplatte geschrieben werden
⇒Noch kein Austausch, um Prozessblockierung zu vermeiden,
lediglich Markieren der Seite als Kandidat
Setze Zeiger eine Position fort und untersuche das R-Bit
Wenn die gesamte Liste durchlaufen wurde, sind zwei Fälle möglich
Mindestens eine Seite wurde zum Auslagern vorgemerkt
Keine Seite wurde vorgemerkt
O. Kao
Betriebssysteme
3-10
WSClock-Algorithmus (2)
Aktuelle Zeit: 2204
• Fall 1: Mindestens eine
Seite wurde vorgemerkt
(Einige) vorgemerkte
Seiten werden in der
Zwischenzeit auf
Festplatte ausgelagert,
M-Bit gelöscht ⇒ Seite
wird ausgetauscht
• Fall 2: Keine vorgemerkte
Seite
Alle Seiten werden
gebraucht ⇒ aktuelle
Seite wird ausgelagert
und die Kachel für die
einzulagernde Seite
verwendet
Neue Seite einlagern
O. Kao
Betriebssysteme
3-11
Paging-Daemon
• Technik zur Sicherung eines ausreichenden Vorrats an freien
Kacheln für schnelle Reaktion auf weitere Speicheranforderungen
• Grundidee
Trennung von Seitenverdrängung und Seiteneinlagerung
Speicherverwaltung hält eine vorab festgelegte Anzahl an Kacheln frei
⇒ Seitenfehler können ohne Verdrängung beseitigt und neue
Adressräume direkt angelegt werden
• Realisierung
Paging-Daemon wird periodisch aktiviert (Üblicher Wert: alle 250 ms)
Überprüfung, ob die a-priori vorgegebene Anzahl freier Kachel
unterschritten wurde (Üblicher Wert: ca. 25% der Kachel frei)
Falls ja ⇒ Auslagerung von Seiten auf die Festplatte gemäß der
eingesetzten Verdrängungsstrategie
Falls nein ⇒ Blockierung des Paging-Daemons bis zum nächsten
Sollzeitpunkt
O. Kao
Betriebssysteme
3-12
Beispiel: Speicherverwaltung
in Solaris 2
• Realisierung eines Paging Daemons
• Drei wichtige Parameter
Lotsfree: mindestens 1/64 des Speichers frei, Überprüfung alle 0.25 Sek
Desfree: Fällt die Anzahl freier Seite unter diesen Schwellwert (Durchschnitt über
30 Sek) ⇒ Start von Swapping, Überprüfung alle 0.1 Sek
Minfree: Nur noch minimale Menge freier Seiten vorhanden ⇒ Aufruf der
Seitenersetzung bei jeder Speicheranforderung
Scanrate
Anzahl freier Seiten
O. Kao
Betriebssysteme
3-13
Solaris 2: Algorithmus
• Speicherveraltung mit dem Prozess pageout
Variante des Clockalgorithmus (Zweizeigeralgorithmus, two-handed-clock)
Erster Zeiger scannt die Seiten und setzt die Referenzbits auf 0
Später läuft der zweite Zeiger nach und gibt alle Seiten mit R immer noch
0 wieder frei
• Wichtige Parameter
Scanrate: Scangeschwindigkeit (Seiten/Sekunde)
Anpassung an aktuellen Systemzustand (slowscan = 100 Seiten/s bis
fastscan = Gesamtanzahl von Seiten/2 aber max = 8192)
Handspread: Statischer Abstand in Seiten zwischen den Zeigern
Tatsächlicher Abstand ergibt sich durch Kombination von scanrate und
handspread, z.B. scanrate = 100 und handspread = 1024 ⇒ 10 Sek
zwischen den beiden Zeigern
Bei höher Belastung Abstände von einigen Tausendstel nicht
ungewöhnlich
• Erweiterung: Überspringe Seiten von Shared Libraries
O. Kao
Betriebssysteme
3-14
3.3 Speicherverwaltung
unter Linux
• Speichermodell
Gradlinig, architekturunabhängig ⇒ Hohe Portabilität
• Physischer Speicher in Seiten strukturiert
32-bit Architektur meist 4Kb Seiten, 4 GB adressierbar
64-bit Architektur meist 8Kb Seiten, 16 Exabyte adressierbar
• Virtueller Adressraum je Prozess (auf 32-bit-Maschinen)
3 GB virtueller Adressraum: Text-, Daten-, BBS-Segment, Stapel
1 GB: Seitentabellen und andere Informationen des Kerns
• Fest-verdrahteter Kern ⇒ kein Bestandteil wird jemals ausgelagert
• Unterteilung in Kernsegmente und Nutzersegmente
Kernsegment-Seitentabellen für alle Prozesse identisch ⇒ Alle
Prozesse finden gleiches Kernsegment bei Systemaufrufen vor
Clone: Kindthread teilt sich den Speicherbereich mit dem Elternthread
⇒ Verweise auf die Seitentabelle des Vaters
Fork: Kopieren der Seitentabellen des Elternprozesses
O. Kao
Betriebssysteme
3-15
Übersetzung der linearen
Adressen
Physischer Speicher
Lineare Adresse
Offset
K
+
+
+
Seitenverzeichnis
Seitentabelle
Mittleres Seitenverzeichnis
Seitenverzeichnis-Basisadresse
O. Kao
Betriebssysteme
3-16
Virtueller und physischer Speicher
• Benötigte Teile von Shared Libraries werden zur Laufzeit eingeblendet
Prozess A
Prozess B
Physischer
Speicher
Kellerzeiger
Kellerzeiger
Eingeblendete
Datei
BSS
Daten
Daten
Text
BSS
Daten
Betriebssystem
O. Kao
Betriebssysteme
Text
3-17
Virtuelle Speicherbereiche
• Virtuelle Speicherbereiche werden häufig von Hardware genutzt, die
Speicher in den Adressraum einblenden (z.B. Speicher der Grafikkarte
oder Dateien)
Vorteil: Schnellere Kommunikation als über Systemaufrufe
• Programmcode von Programmen nur einmal im Speicher, kann aber
von verschiedenen Prozessen gleichzeitig genutzt werden
Attribute zeigen an, ob auf eine Seite privat oder geteilt zugegriffen wird
Übereinstimmender Datensegmente können lesend gleichzeitig von
mehreren Prozessen genutzt werden
⇒Speicherplatzersparnis, da das Programm / die Bibliothek nur einmal
im Speichergehalten werden muss
Bei Schreibzugriff eines Prozesses
⇒Copy-On-Write, d.h. es wird eine private Kopie der Seite erzeugt, der
von anderen Prozessen nicht lesbar ist
O. Kao
Betriebssysteme
3-18
Speicherseitenreservierung
• Unterscheidung in 3 Speicherzonen
ZONE_DMA: Für den Datentransfer mittels DMA geeignete Seiten, für
Gerätetreiber, 0-16 MB
ZONE_NORMAL: Möglichst alle Benutzerprozesse, über 16 MB
ZONE_HIGHMEM: Seiten, die nicht in das Kernsegment eingeblendet
werden können (spezieller Fall, bei x86 Prozessoren mit mehr als 896
MB Speicher)
• Zonen sind Prioritäten zugeordnet, z.B. werden DMA Seiten erst
vergeben, wenn kein „normaler Speicher“ mehr frei ist
• Belegung nach dem Buddy System mit Variationen
Buddy-Blöcke werden in Scheiben aufgeteilt, die separat verwaltet
werden
• Freie Seiten werden mittels doppelt verketteter Ringliste
(free_area) verwaltet
O. Kao
Betriebssysteme
3-19
Auslagerungsstrategie
• Speicherbereinigung (kswapd) wird beim Unterschreiten eines
Prozentsatzes freier Seiten aktiviert
Kernelthread kswapd sucht nach inaktiven Speicherseiten, erstellt
Liste und ruft dann Bdflush auf
Bdflush: Schreibt Seiten auf Platte und markiert sie als sauber
und inaktiv im Speicher
Bdflush wird auch aktiviert, wenn zu viele der Seiten modifiziert
wurden ⇒ Speichern auf Festplatte
• Daemon kswapd wird jede Sekunde oder bei Bedarf aufgerufen
1. Freigabe lange nicht benötigter Seiten, zunächst von Prozessen mit
langer Verweildauer im Speicher ⇒ Anwendung eines modifizierten
Clock-Algorithmus
2. Freigabe selten benötigter gemeinsamer Seiten
3. Freigabe anderer Seiten
Minimale Verweilzeit im Speicher (Vermeidung von Trashing)
Falls sauber ⇒ sofort freigeben, sonst 2. Chance-Algorithmus
O. Kao
Betriebssysteme
3-20
Auslagerungsbereiche
• Zwei Arten von Auslagerungsbereichen
Ganzes Blockgerät/Swapgerät (z.B. Partition): Seite ist in aufeinander
folgenden Blöcken gespeichert ⇒ Effizientes Einlesen beim
Wiedereinlagern
Auslagerungsdatei: Seiten können auf unterschiedlichen Blöcken
liegen (je nach Fragmentierung des Dateisystems) ⇒ Verwaltungsund E/A- Aufwand
• Parallele Verwendung mehrerer Swapgeräte/-dateien inklusive
Priorisierung
• Speicherseiten des Kerns werden nicht ausgelagert
Routinen, die ausgelagerte Seiten wieder einlagern, müssen immer im
Speicher sein
O. Kao
Betriebssysteme
3-21
3.4 Speicherverwaltung unter
Windows
• Windows NT/2000/XP
Prozess A
32 Bit lange Adresse
⇒ 4 GB virtueller Adressraum
je Prozess
4 GB
keine Seitenersetzung
• Aufteilung des Speichers
Seitenersetzung
Untere 2 GB für Prozesse
Obere 2 GB für Kern
Ausnahme: WindowsVersionen für Datenbanken
erlauben 3GB für Prozesse Untere/obere
• Seitenadressierung,
Segmentadressierung wird
nicht unterstützt
O. Kao
Kernmodus
Seitentabelle von A
Keller, Daten usw.
2 GB
64 KB
ungültig
Betriebssysteme
HAL + BS
Systemdaten
Code und Daten
von Prozess A
Benutzermodus
3-22
Seitenadressierung
• Maximale Seitengröße 64 KB, wobei jede Zweierpotenz erlaubt ist
• Voreingestellte Seitengrößen
Pentium 4 KB
Itanium 8 oder 16 KB
• Bei Zuordnung eines Bereiches des virtuellen Adressraums wird die
Datenstruktur VAD (Virtual Address Descriptor) angelegt
VAD speichert abgebildete Adressbereiche, zuständige
Auslagerungsdatei auf Hintergrundspeicher, Offset und Schutzcode
Erste Berührung der Seiten führt zu Erzeugung von
Seitentabellenverzeichnis ⇒ Eintrag des Zeigers in VAD
• Adressraum wird vollständig durch Liste seiner VADs beschrieben
• Kein Prepaging vorhanden
Beim Prozessstart sind keine Seiten im Speicher
Dynamische Einlagerung bei Seitenfehler
O. Kao
Betriebssysteme
3-23
Eigenschaften der Seiten
• Zustände virtueller Speicherseiten
Frei (nicht im Gebrauch, Verweis = Seitenfehler)
Belegt (Code/Daten eingelagert)
Reserviert (Steht bis zur Freigabe nicht zur Verfügung)
• Seitentabelleneintrag für eingelagerte Seite bei Pentium
• Bedeutung der Bits bei eingelagerten Seiten
G: Seite global für alle Prozesse
D: Dirty Bit
C: Caching Ein/Ausschalten
U: Seite sichtbar im Benutzermodus
V: Gültiger Eintrag
O. Kao
L: Große (4MB) Seite
A: Accessed (Referenzbit)
Wt: Write through (kein Caching)
W: Beschreibbare Seite
Betriebssysteme
3-24
Seitenfehler
• Arten von Seitenfehlern
Referenzierte Seite ist nicht belegt
Schutzverletzung ist aufgetreten
}
Fatale Fehler (keine Prozessrettung)
Auf eine geteilt genutzte Seite wurde geschrieben
Stapel muss wachsen
Referenzierte Seite ist
}
Copy-On-Write
}
Allokation einer neuen Kachel + Einlagerung (nur
zeroed pages)
Normaler
belegt, aber nicht eingelagert
Seitenfehler
}
• Behandlung von Seitenfehlern
Sprung in Kernmodus erforderlich
Kern erstellt maschinenunabhängigen Descriptor und leitet ihn an den
Speichermanager der Executive weiter zur Gültigkeitsüberprüfung
Falls fehlende Seite im belegten/reservierten Bereich
Suche in Liste der VADs nach Adresse
Finden/Erzeugen der Seitentabelle und Suche nach relevanten
Eintrag
O. Kao
Betriebssysteme
3-25
Seitenersetzungsalgorithmus
• Ziel: Gewisser Prozentsatz aller Seiten wird freigehalten
(Freibereichsliste) ⇒ Keine Auslagerung bei Seitenfehlern
erforderlich
• Working-Set Verfahren
Eingelagerte Seiten eines Prozesses ⇒ kein Prozess nimmt einem
anderen Prozess Speicher weg
Zu Beginn ist das Minimum des Working-Sets auf einen Wert zwischen
20 und 50 und das Maximum zwischen 45 und 345 gesetzt
Jeder Prozess startet mit demselben Minimum und Maximum
Entscheidung bei Seitenfehler
Größe des WS<MIN ⇒ Seite wird hinzugefügt
Größe des WS>MAX ⇒ Seite wird aus WS entfernt (aber nicht aus
dem Speicher)
• Parameter werden der aktuellen Systemsituation angepasst, z.B.
Erhöhung des WS-Maximalwerts für einen aktiven Prozess
O. Kao
Betriebssysteme
3-26
Speicherfreigabe und
Seitenauslagerung
• Balance-Set-Manager: Sind genügend freie Seiten vorhanden?
Falls nicht: Start des Working-Set-Managers zur Seitenfreigabe
Prüfreihenfolge anhand von Leerlaufzeiten und Größe der Prozess
(Untersuche große, über längere Zeit leer laufende Prozesse)
Prozesse mit Working Set < Minimum oder mit vielen Seitenfehlern
werden ignoriert
Falls nicht genügend Seiten freigegeben ⇒ Anpassung der
Schwellwerte für groß/lange Zeit leer ⇒ aggressiveres Vorgehen
• Seitenauslagerung
Forderung: Fester Platz für Seiten auf Platte bei Auslagerung
Problem: Auslagerungsdatei mit Größe der virtuellen Adressräume aller
Prozesse zu groß
Lösung: Zuweisung von Seiten auf Platte erst bei Auslagerung ⇒
komplexes Zuordnungssystem mit bis zu 16 Auslagerungsdateien
verteilt auf bis zu 16 Platten
O. Kao
Betriebssysteme
3-27
Physische Speicherverwaltung
• Jede Seite im Speicher ist in einem oder mehreren Working-Sets
oder in genau einer von vier Listen
Modified list
Veränderte Seiten, kürzlich aus Working-Set entfernt
Befinden sich noch im Speicher und gehören noch zum Prozess
Standby list
Unveränderte Seiten, kürzlich aus Working-Set entfernt
Befinden sich noch im Speicher und gehören noch zum Prozess
Im Unterschied zu Seiten der Modified List existieren noch
Originale auf der Platte ⇒ können jederzeit entfernt werden
Free list: unveränderte Seiten, die nicht länger zum Prozess gehören
Zeroed pages list: wie free list, Seiten jedoch mit Nullen aufgefüllt
• Ausnahme: fünfte Liste mit allem Seiten, die physischen RAM
Defekt aufweisen
O. Kao
Betriebssysteme
3-28
Physische Speicherverwaltung
(Grafische Darstellung)
O. Kao
Betriebssysteme
3-29
Physische Speicherverwaltung:
Hintergrundprozesse
• Swapper-Thread läuft alle 4 Sekunden und sucht alle Prozesse,
deren Threads für eine bestimmte Zeitspanne im Leerlauf waren
Prozess gefunden ⇒ Auflösung des Stapels, Prozessseiten werden auf
Standby oder Modified List geschoben
• Mapped-Page-Writer/Modified-Page-Writer (Hintergrundthreads)
Periodische Prozesse, die nachsehen, ob genügend freie Seiten
vorhanden sind
Keine freien Seiten ⇒ Seiten von der Spitze der Modified list holen,
zurück auf die Festplatte schreiben, verschieben in Standby list
• Lagert ein Prozess eine Seite aus ⇒ Seite wird in Free list
verschoben, es sei denn, diese wird mit anderen Prozessen geteilt
• Stapelwachstum ⇒ eine Seite gefüllt mit Nullen zwingend
notwendig (Sicherheitsgründe)
O. Kao
Betriebssysteme
3-30
3.5 Leistungsaspekte des
virtuellen Speichers
• WSClock bietet den besten Kompromiss zwischen effizienter
Implementierung und guter Leistung
• Leistung des virtuellen Speichers hängt von Lokalität ab
Gute Lokalität: Auf wenige Seiten wird mit hoher Wahrscheinlichkeit
und auf viele Seiten mit geringer Wahrscheinlichkeit zugegriffen
Seitenzugriffswahrscheinlichkeit 0.8
Häufig
benötigte
Seiten sollen im
Speicher sein!
α=0.1
0.6
α drückt die Streuung aus
0.4
α=0.2
0.2
α=0.5
α=1
0.0
Seiten geordnet nach Zugriffswahrscheinlichkeit
O. Kao
Betriebssysteme
3-31
Modellierung des
Seitentausches
• Kenngrößen
S: Anzahl verfügbarer Kachel
S0: Adressraumgröße
0.4
• Seien die S am häufigsten
benötigten Seiten im Speicher
0.3
0.2
Trefferwahrscheinlichkeit
S
p hit (S ) = ∫ p (z )dz
p = Zugriffswahrscheinlichkeit
Treffer
0.1
Seitenfehler
0
Seitenfehlerwahrscheinlichkeit
0.0
p miss (S ) = 1 − p hit (S )
Im Speicher
auf Platte
S
Speicherangebot
S0
Seiten geordnet nach Zugriffswahrscheinlichkeit
σ = S /S0
Normierte Seitenfehlerwahrscheinlichkeit
p 'miss (σ ) = p miss (S )
O. Kao
Betriebssysteme
3-32
Modellierung des
Seitentausches (2)
• Abhängigkeit der Seitenfehlerwahrscheinlichkeit vom Speicherangebot
Seitenfehlerwahrscheinlichkeit
1.0
0.8
0.6
α=0.5
0.4
α=1
α=0.3
0.2
α=0.2
α=0.1
Speicherangebot σ
0.0
0.0
0.4
0.2
O. Kao
0.6
0.8
1.0
Betriebssysteme
3-33
Modellierung des Seitentausches
beim Mehrprogrammbetrieb
• Kenngrößen
Κ Anzahl Kacheln
n Anzahl der Programme im
ts Zeit zwischen zwei Seitenfehlern
Hauptspeicher (Multiprogramming
Level, MPL)
S0 Größe des Adressraums in Seiten
ts Zeit zwischen zwei Seitenfehlern
tT Seitentransferzeit
S Speicherangebot in Seiten
σ =S/S0 Normiertes Speicherangebot
Lifetime-Function
Speicherangebot
• Bei n identischen Programmen gilt
S(n) = Κ/n bzw.
σ(n) = Κ/(nS0)
• Partielle Modellierung der Zeit zwischen zwei Fehlern (Annäherung durch
2
Parabel)
 Κ 
2

ts sinkt mit wachsendem n
t s = aσ = a
 nS 0 
O. Kao
Betriebssysteme
3-34
Verzahnung von Rechen- und
Seitentauschphasen
1. Fall: ts>tT
ts
ts Zeit zwischen zwei
tT
ts
ts
tT
ts
ts
tT
ts
ts
tT
ts
ts
ts
tT
tT
tT
ts
ts
ts
tT
tT
tT
ts
2. Fall: ts ≤ tT
Seitenfehlern
tT Seitentransferzeit
tT
tT
tT
ts
ts
ts
tT
ts
tT
CPU leer
tT
tT
…
CPU phasenweise leer, da alle Prozesse auf ihre Seiten warten
O. Kao
Betriebssysteme
3-35
Thrashing-Effekt
• Als Thrashing-Effekt wird jener Systemzustand bezeichnet, bei dem
das System nur noch mit Seitenaustausch beschäftigt ist und kaum
noch zu produktiver Arbeit kommt
• Spezielle Ausprägung eines Überlastphänomens, das in vielen
Bereichen auftritt
Rechnernetze:
Netzwerkkollaps durch zu viele Pakete
Datenbanken:
Datenbankkollaps durch zu viele Transaktionen
Straßenverkehr: Stau durch zu viele Fahrzeuge
Parallelverarbeitung:
Schlechte Prozessorauslastung durch die
simultane Bearbeitung von zu vielen Prozessen
• Grund für diese Überlastphänomene
Der Koordinationsaufwand wächst überproportional an
O. Kao
Betriebssysteme
3-36
Thrashing-Entstehung und
Thrashing-Kurve
CPU-Auslatung
Ziel: Gute CPU-Auslastung
Thrashing-Bereich
Viele Programme gleichzeitig bearbeiten
Hoher Multiprogramminggrad n
Geringer Speicherplatz s pro Prozess
Kurze Zeit zwischen zwei Seitenfehlern
Stau bei Datenträgern
nmax Multiprogramminggrad n
Fast alle Prozesse blockiert
Ergebnis: Schlechte CPU-Auslastung
O. Kao
Forderung: Überlastkontrolle soll
verhindern, dass das System in
Überlastbereich gelangt
Betriebssysteme
3-37
Überlastkontrolle
• Zur Verhinderung des Thrashing
muss der Multiprogramminggrad
begrenzt werden
Ist nmax erreicht, so werden
Unterschiedliche
Betriebssituationen
CPU-Auslastung
keine neuen Prozesse
zugelassen
Programmverhalten ändert sich
über die Zeit
Individuelles Programmverhalten
Zusammensetzung der
Programmmenge
nmax
Multiprogramminggrad n
• Wie lässt sich ein optimales nmax bestimmen?
Keine Magic-Number vorhanden ⇒ dynamische Anpassung an die
aktuelle Betriebssituation
Thrashing-Verhinderung ist eine Regelungsaufgabe
O. Kao
Betriebssysteme
3-38
Strategien zur Verhinderung
von Thrashing
• Strategien zur Thrashing-Verhinderung werden aufgeteilt in
Indirekte oder lokale Strategien
Direkte oder globale Strategien
• Indirekte Strategien
Für jeden Prozess i wird individuell eine sinnvolle Kachelanzahl si
festgelegt
Maximaler Multiprogramminggrad ergibt sich indirekt durch
n max
 n

= max n ∑ s i ≤ Κ 
 i =1

• Direkte Strategie
Anhand von Messungen der globalen Seitentauschaktivität wird ein
optimaler Wert für nmax berechnet
O. Kao
Betriebssysteme
3-39
Lokale Regelung der
Seitentauschaktivität
• Anpassung des Working-Set-Verfahrens
Es werden nur so viele Prozesse zugelassen, dass diese ihre
Working-Sets im Speicher ablegen können
• Schätzung der notwendigen Kachel
Welches Zeitfenster τ soll betrachtet werden?
Größe des Working-Sets bei gegebenem τ: wi(t,τ) = |Wi(t,τ)|
⇒ wi(t,τ) Kacheln werden zum vernünftigen Arbeiten benötigt
• Schätzung von wi(t,τ) durch Referenzinformationen pro Prozess
• Laden eines neuen Prozesses x nur dann, wenn
n
wx ≤ Κ − ∑ wi (t ,τ )
i =1
O. Kao
Betriebssysteme
3-40
Page-Fault-Frequency-Modell
• Seitenfehlerrate = Anzahl Seitenfehler / Zeiteinheit
• Für jeden Prozess wird die Seitenfehlerrate ρ gemessen
Einführung von zwei Schwellwerten ρ1 (obere Intervallgrenze) und ρ2
(untere Intervallgrenze)
Einstellung der Kachelanzahl S in Abhängigkeit von Seitenfehlerrate
durch
Verringere Anzahl Kacheln, falls ρ < ρ1, d.h. S =S -1
Erhöhe Anzahl Kacheln, falls ρ > ρ2, d.h. S = S + 1
Seitenfehlerrate ρ
S erhöhen
ρ2
ρ1
S verringern
O. Kao
Anzahl Kacheln S
Betriebssysteme
3-41
Globale Regelung der
Seitentauschaktivität
• Kriterium der Zwischenseitenfehlerzeit (L=S-Kriterium)
Prozessanzahl so bestimmen, dass die durchschnittliche Zeit zwischen
Seitenfehlern (ts hier L) so groß ist wie die Seitentransferzeit (tT hier S)
• 50%-Regel
Zu viele Prozesse am Seitentausch blockiert ⇒ mittlere Warteschlangenlänge nst an Festplatte größer 1 (nst =1 entspricht 50% Gerätauslastung)
⇒ Neue Prozesse nur dann zulassen, wenn die Gerätauslastung über ein
längeres Intervall unter 50% liegt
Auslastung
1
Festplatte (Seitentausch)
0.5
CPU
nopt n50%
O. Kao
Betriebssysteme
3-42
Herunterladen