Fahrplan Nr. Datum Wintersemester 2005/06 1 11.01.06 2 18.01.06 Strukturen von Betriebssystemen Vorlesung 8 Virtueller Speicher 3 25.01.06 Prozesse und Threads 4 01.02.06 CPU Scheduling 5 22.02.06 Synchronisation von Prozessen 6 22.02.06 Blockaden (Deadlocks) 7 22.02.06 Speicherverwaltung Betriebssysteme Dr. Oliver Waldhorst Rechnernetze und verteilte Systeme Universität Leipzig http://www.informatik.uni-leipzig.de/rnvs Virtueller Speicher z z z z z z z z z Betriebssysteme WS 05/06 Organisation der Vorlesung, Einführung in die Betriebssysteme 8 23.02.06 Virtueller Speicher 9 23.02.06 Dateisystem 10 23.02.06 Verteilte Systeme O. Waldhorst Betriebssysteme WS 05/06 2 Hintergrund z Hintergrund Seitenauslagerung nach Bedarf (Demand Paging) Leistung von Demand Paging Ersetzung von Speicherseiten Seitenersetzungs-Algorithmen Speicherzuweisung Thrashing Weitere Gesichtspunkte Beispiele: Windows XP / Solaris O. Waldhorst Thema Virtueller Speicher z z z z z 3 Trennung des logischen Benutzerspeichers vom physikalischem Speicher Nur ein Teil des Programms muss sich zur Ausführung im Speicher befinden z Bsp.: Fehlerbehandlungsroutinen, Teile von Arrays, Symboltabellen eines Assemblers … Logischer Adressbereich kann daher viel größer als der physikalische Adressbereich sein z Erlaubt höheren Grad von Multiprogramming und erhöht CPU Auslastung ohne Anstieg von Antwortzeiten und Zeit zur Fertigstellung Ermöglicht geteilten Speicher Ermöglicht effizientes Erzeugen von Prozessen O. Waldhorst Betriebssysteme WS 05/06 4 Organisation des virtuellen Speichers Hintergrund z Logische Sichtweise für jeden Prozess z z O. Waldhorst Betriebssysteme WS 05/06 5 Geteilte Bibliotheken und virtueller Speicher z Speicher beginnt bei 0 und wächst in zwei Richtungen Einfache Realisierung von Compilern O. Waldhorst z z Eine Speicherseite wird nur bei Bedarf in den Speicher geladen z Benötigt weniger E/A z Benötigt weniger Speicher z Schnellere Antwortzeiten z Erlaubt mehr Benutzer Seite wird benötigt ⇒ Referenz auf diese Seite z Ungültige Referenz ⇒ Abbruch z Nicht im Speicher ⇒ bringe Seite in den Speicher z Ähnlich Paging mit Auslagern z z Betriebssysteme WS 05/06 6 Seitenauslagerung nach Bedarf (Demand Paging) Bibliotheken können im virtuellen Adressraum mehrerer Prozesse liegen O. Waldhorst Betriebssysteme WS 05/06 7 Träges Auslagern (Lazy Swapping), Systemkomponente Pager Im Extremfall ist bei Programmstart keine Seite im Speicher (Pure Demand Paging) O. Waldhorst Betriebssysteme WS 05/06 8 Gültigkeitsbit (Valid-Invalid Bit) z Speicherorganisation bei virtuellem Speicher Jeder Eintrag der Seitentabelle enthält ein Gültigkeitsbit z z 1 ⇒ im Speicher 0 ⇒ nicht im Speicher oder nicht gültig z Zu Beginn sind alle Gültigkeitsbits auf 0 gesetzt z Gültigkeitsbit 0 bei Adressübersetzung Seitenfehler z z Sprung zu Pager im Betriebssystem O. Waldhorst Betriebssysteme WS 05/06 9 Seitenfehler z Betriebssysteme WS 05/06 10 Behandlung von Seitenfehlern Betriebssystem entscheidet anhand entsprechender Tabelle z z z O. Waldhorst ungültige Referenz ⇒ Abbruch Ansonsten Seite einfach nicht im Speicher Aktionen zum Transfer einer Seite in den Speicher z z z z Besorgt freien Rahme Holt Seite in den Seitenrahmen Setzt Tabelleneintrag, Gültigkeitsbit = 1 Neustart der Instruktion O. Waldhorst Betriebssysteme WS 05/06 11 O. Waldhorst Betriebssysteme WS 05/06 12 Was passiert, wenn kein Seitenrahmen verfügbar? z z Seitenfehlerrate Seitenersetzung z z z z z Leistung von Demand Paging Falls p = 0: keine Seitenfehler Falls p = 1: jede Referenz führt zum Fehler z Finden einer Speicherseite, die nicht gebraucht wird Auslagerung der Seite Algorithmus für Seitenersetzung Performanz: Algorithmus soll möglichst wenige Seitenfehler produzieren z z Effektive Zugriffszeit (EZZ; engl.: EAT) EZZ = (1 – p) x Speicherzugriffszeit + p (Seitenfehler-Overhead + [Seitenauslagerung] + Seiteneinbringung + Neustart-Overhead) Es kann durchaus vorkommen, dass dieselbe Seite mehrmals ein- und ausgelagert wird O. Waldhorst Betriebssysteme WS 05/06 0 ≤ p ≤ 1,0 13 O. Waldhorst Betriebssysteme WS 05/06 Leistung von Demand Paging Erzeugung von Prozessen z Speicherzugriffszeit z = 200ns z Durchschnittliche Zeit für Behandlung von Seitenfehlern = 8ms z z EZZ = (1 – p) x 200ns + p (8ms) = (1 – p x 200ms + p x 8.000.000ns = 200ns + p x 7.999.800ns Einer aus 1000 Zugriffen verursacht eine Seitenfehler z O. Waldhorst z EZZ = 8,2ms z Zugriffszeit z erhöht sich um Faktor 40! Betriebssysteme WS 05/06 Virtueller Speicher hat Vorteile bei der Erzeugung von Prozessen Kopieren beim Schreiben (Copy-on-Write, COW) z z Annahme: Elter und Kind Prozess teilen sich Seiten im Speicher Wenn einer der Prozesse eine geteilte Seite modifiziert, wird diese kopiert Speicher-Abbildung von Dateien z 15 14 Dateizugriff als Speicherzugriff maskiert O. Waldhorst Betriebssysteme WS 05/06 16 Seitenersetzung z Vermeidung der Überbelegung des Speichers durch Integration einer Seitenersetzungsstrategie in die Seitenfehlerroutine z z Seitenersetzung Greift dann, wenn bei Seitenfehler keine freien Rahmen mehr verfügbar z z Anwendung eines Modifikationsbits, um Overhead durch Seitentransfers zu verringern Nur geänderte Seiten werden auf Festplatte geschrieben Ein großer virtueller Speicher kann auf einem kleineren physikalischen Speicher bereitgestellt werden O. Waldhorst Betriebssysteme WS 05/06 17 Schritte bei Seitenersetzung 2. z z z Betriebssysteme WS 05/06 18 z z z 19 O. Waldhorst Paging erfordert Rahmenzuweisungsalgorithmus (s.u.) Seitenersetzungsalgorithmus z Ziel Lade die angeforderte Seite in den gewählten Rahmen und aktualisiere Seiten- und Rahmentabellen Starte den Prozess neu O. Waldhorst Betriebssysteme WS 05/06 z Demand Wenn Rahmen vorhanden, benutze diesen Wenn kein Rahmen vorhanden, wähle einen Rahmen aus (victim) z O. Waldhorst Seitenersetzungsalgorithmen Finde die angeforderte Seite auf der Platte Finde einen leeren Rahmen 1. 4. Ersetzung kann das Zurückschreiben von Seiten erfordern Seitenersetzung komplettiert die Trennung zwischen logischen und physikalischen Speicher z 3. z Seitenersetzungsalgorithmus Niedrigste Seitenfehler-Rate Bewertung eines Algorithmus durch Testlauf auf einer vorgegebenen Folge von Speicherzugriffen (Referenzstring) und Berechnung der Anzahl von Seitenfehlern auf dieser Folge (Deterministisches Modell) In allen folgenden Beispielen wird folgender Referenzstring verwendet: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Betriebssysteme WS 05/06 20 First-In-First-Out (FIFO) Algorithmus Seitenersetzungsalgorithmen z Eigenschaften von Seitenersetzungsalgorithmen z z z Zwei direkt aufeinander folgende Zugriffe auf die selbe Seite verursachen niemals einen Fehler Für andere Zugriffe hängt die Fehlerrate von der Anzahl der Rahmen ab z Intuitiv: Je mehr Rahmen, desto kleiner die Seitenfehler-Rate Gilt nicht immer! z z z Ersetzung der ältesten Seite z Vorteil z z Betriebssysteme WS 05/06 21 Belady‘s Anomalie z Referenzstring: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 z 3 Seitenrahmen (pro Prozess können 3 Seiten gleichzeitig im Speicher sein) z 1 1 4 5 2 2 1 3 3 3 2 4 1 1 5 4 2 2 1 5 10 Seitenfehler 3 3 2 4 4 3 Einfach zu implementieren Nachteile z O. Waldhorst Realisierung durch FIFO-Warteschlange Ersetzte Seite kann selten gebrauchtes Modul, aber auch häufig gebrauchte Bibliothek sein Belady‘s Anomalie O. Waldhorst Betriebssysteme WS 05/06 22 Belady‘s Anomalie z Mehr Rahmen ⇒ Mehr Seitenfehler 9 Seitenfehler 4 Seitenrahmen O. Waldhorst Betriebssysteme WS 05/06 23 O. Waldhorst Betriebssysteme WS 05/06 24 Least Recently Used (LRU) Algorithmus Optimaler Algorithmus z z z Optimaler Algortimus sollte z Niedrige Pagefault-Rate haben z Nicht an Belady‘s Anomalie leiten Algorithmus OPT (auch als MIN bezeichent): z Ersetzung der Seite, die am längsten nicht verwendet wird Beispiel mit 4 Seitenrahmen z Woher soll OPT die zukünftige Verwendung kennen? z z 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 z 4 Algorithmus wird verwendet, um Performanz anderer Algorithmen zu messen Problematik ähnliche Shortest-Job-First Scheduling Approximation: z 2 6 Seitenfehler Ersetzung der Seite, die am längsten nicht mehr verwendet wurde 3 4 O. Waldhorst 5 Betriebssysteme WS 05/06 25 Least Recently Used (LRU) Algorithmus z z z 5 2 8 Seitenfehler 3 5 4 3 z 4 z z 27 verschiebe Seite nach oben benötigt Änderung von 6 Zeigern (Speicherzugriff aufwendig!) Keine Suche für Ersetzung notwendig z Betriebssysteme WS 05/06 26 Wie kann LRU Algorithmus effizient implementiert werden? Implementierung mit Zähler z Jedem Seiteneintrag ist ein Zähler zugeordnet; bei jedem Zugriff wird Zählereintrag der Seite auf die aktuelle Zeit gesetzt z Wird Seitenauslagerung notwendig, werden die Zählereintrage zur Auswahl herangezogen Implementierung mit Stack z Verwaltung eines Stacks von Seitennummern in einer doppelt verketteten Form: z Wird Seite referenziert: z O. Waldhorst Betriebssysteme WS 05/06 Least Recently Used (LRU) Algorithmus Referenzstring: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 O. Waldhorst O. Waldhorst Seite am Ende des Stacks ersetzen Betriebssysteme WS 05/06 28 Least Recently Used (LRU) Algorithmus z LRU ApproximationsAlgorithmuen Implementierung mit Stack z z z z Verwaltung eines Stacks von Seitennummern in einer doppelt verketteten Form: Wird Seite referenziert: z verschiebe Seite nach oben z benötigt Änderung von 6 Zeigern (Speicherzugriff aufwendig!) Keine Suche für Ersetzung notwendig z Seite am Ende des Stacks ersetzen Problem des LRU-Algorithmus z z z Update des Stacks bei jedem Speicherzugriff Verlangsamung typischerweise Faktor 10 Referenzbit z z z z Assoziiere mit jeder Seite ein Bit, anfangs = 0 Wird auf Seite zugegriffen, setze Bit auf 1 Ersetzte Seite mit Referenzbit = 0 (falls es eine gibt) Verfahren legt jedoch keine Reihenfolge fest! z Erweiterung: Mehrere Referenzbits in Verschiebe-Register z Z.B. 8 Bits O. Waldhorst Betriebssysteme WS 05/06 29 LRU ApproximationsAlgorithmus z O. Waldhorst 00000000 – nicht referenziert 11111111 – jedes Runde referenziert 11000100 später benutzt als 01110111 Betriebssysteme WS 05/06 30 Second Chance Algorithmus Zweite Chance (Second Chance) z z z FIFO mit Referenzbit Falls zu ersetzende Seite (in FIFO Reihenfolge) Referenzbit = 1 hat, dann: z Setzte Referenzbit auf 0 z Belasse Seite im Speicher z Ersetze nächste Seite (in der zeitlichen Folge) gemäß denselben Regeln Auch bezeichnet als Uhr-Algorithmus (Clock Algorithm) z Realisierung in ringförmig verketteter Liste mit Zeiger auf nächsten Ersetzungskandidaten O. Waldhorst Betriebssysteme WS 05/06 31 O. Waldhorst Betriebssysteme WS 05/06 32 Seiten-Pufferung (Page Buffering) Zähler-Algorithmen z z z z z Ersetzung der Seite mit dem kleinsten Zählerwert z Leistung schlechter als LRU! Betriebssysteme WS 05/06 z z Datenbanken, Data Mining Anwendungen, … O. Waldhorst Betriebssysteme WS 05/06 34 Feste Zuweisung Wie wird der freie physikalische Speicher den Prozessen zugewiesen? Jeder Prozess benötigt eine minimale Anzahl von Seiten z Modifizierte Seiten werden vorsorglich nebenläufig geschrieben, wenn Pager nicht beschäftigt Merken, welche auf den als frei Markierten Seiten im Pool gespeichert waren, um diese bei Bedarf ohne Plattenzugriff wieder herzustellen Viele Applikationen nutzen direkten Plattenzugriff z 33 Angeforderte Seite kann direkt geladen und Prozess fortgesetzt werden Zu ersetzende Seite wird nebenläufig geschrieben Varianten: z Rahmenzuweisung z z z Die Seite mit dem kleinsten Zählwert ist womöglich soeben erst eingebracht worden und wird daher noch benötigt O. Waldhorst Verwaltung eines Pools von freien Rahmen z Most-Frequently-Used (MFU) Algorithmus z z z Verwaltung eines Zählers für jede Seite, der die Anzahl der Zugriffe festhält Least-Frequently-Used (LFU) Algorithmus z Gleichmäßige Zuweisung z Bsp.: IBM 370 – benötigt 6 Seiten um SS MOVE Instruktion durchzuführen: z Instruktion hat 6 Bytes, kann über 2 Seiten gehen z 2 Seiten für Quelle z 2 Seiten für Ziel z Bsp.: 100 Seitenrahmen, 5 Prozesse, jeder Prozess bekommt 20 Seitenrahmen Proportionale Zuweisung z Aufteilung im Verhältnis der Prozessgrößen Es gibt 2 wesentliche Zusweisungssschemata z z Feste Zuweisung Prioritätszuweisung O. Waldhorst Betriebssysteme WS 05/06 35 O. Waldhorst Betriebssysteme WS 05/06 36 Prioritätsbelegung Beispiel proportionale Zuweisung z Kenngrößen z si = Größe von Prozess pi S = ∑ si z m = Gesamtanzahl der Seitenrahmen s ai = Belegung für pi = i ´ m S z z z Anzahl zugewiesener Rahmen m = 64 z s1 = 10 z 10 × 64 ≈ 5 137 127 a2 = × 64 ≈ 59 137 z Betriebssysteme WS 05/06 37 Globale vs. Lokale Ersetzung z z z z z Prozess wählt einen Seitenrahmen zur Ersetzung aus allen Rahmen Ein Prozess kann den Rahmen von einen anderen Prozess wegnehmen Problem: Prozess hat keine Kontrolle über seine Seitenfehlerrate Betriebssysteme WS 05/06 Betriebssysteme WS 05/06 38 Hat ein Prozess nicht „genug“ Seiten, ist die Seitenfehlerrate extrem hoch z z z z 39 Es werden Seiten ersetzt, die in naher Zukunft wieder gebraucht werden Dies führt zu: z Jeder Prozess wählt nur aus der Menge seiner eigenen, belegten Seitenrahmen Problem: Lässt evtl. Ressourcen ungenutzt, globale Ersetzung hat größeren Durchsatz O. Waldhorst O. Waldhorst z Lokale Ersetzung z Auswahl eines Seitenrahmens von Pi zur Ersetzung Auswahl eines Seitenrahmens von einem Prozess mit niedrigerer Priorität Thrashing Globale Ersetzung z Anzahl der Rahmen pro Prozess ändert sich mit Grad des Multiprogramming Beachtet nicht die Prioritäten der Prozesse Proportionales Belegungsschema anhand von Prioritäten Wenn Prozess Pi einen Seitenfehler auslöst s2 = 127 a1 = O. Waldhorst Problem feste Zuweisung: Niedriger CPU Auslastung Betriebssystem nimmt an, es muss die Anzahl der Prozesse erhöhen Ein weiterer Prozess wird zum System hinzugefügt O. Waldhorst Betriebssysteme WS 05/06 40 Thrashing Diagramm z Thrashing ≡ Ein Prozess lagert ständig Seiten ein und aus z z Lokalitätsprinzip z CPU verrichtet keine sinnvolle Arbeit, sondern ist mit Paging beschäftigt z Lokale Ersetzung kann Trashing reduzieren z z z Tritt nur bei einzelnen Prozessen auf Aber: Pager wird von diesen Prozessen belegt und andere Prozesse ausgebremst O. Waldhorst Betriebssysteme WS 05/06 z z Prozess wandert von einer Lokalität zur anderen Lokalitäten können sich überlappen Warum tritt Thrashing auf? z Σ Lokalitätsgrößen > Gesamtspeicherplatz 41 Arbeitsmengen-Modell (Working-Set Model) z Warum funktioniert die Seitenauslagerung? Lokalitätsprinzip O. Waldhorst Betriebssysteme WS 05/06 42 Arbeitsmengen-Modell (Working-Set Model) Δ ≡ Arbeitsmengen-Fenster ≡ Eine feste Anzahl von Seitenzugriffen Beispiel: 10.000 Instruktionen WSSi (Arbeitsmenge von Prozess Pi) = Gesamtzahl von Seiten auf die in den letzten Δ Speicherzugriffen zugegriffen wurde (variiert über die Zeit) z Bei zu kleinem Δ kann nicht ganze Lokalität überschaut z D = Σ WSSi ≡ Gesamtzahl benötigter Rahmen z falls D > m ⇒ Thrashing z Strategie falls D > m: Anhalten eines Prozesses werden z Bei zu großem Δ werden mehrere Lokalitäten umfasst z ist Δ = ∞ ⇒ das ganze Programm wird erfasst O. Waldhorst Betriebssysteme WS 05/06 43 O. Waldhorst Betriebssysteme WS 05/06 44 Bestimmung der Arbeitsmenge z z z z Seitenfehler-Rate Wie kann die Arbeitsmenge effizient bestimmt werden? z Abschätzung mit Intervall-Timer + Referenzbit z z Beispiel: Δ = 10.000 z Timer unterbricht alle 5.000 Zeiteinheiten z Verwalte im Speicher 2 Bits für jede Seite z Bei jeder Unterbrechung durch Timer kopiere Bits und setze alle Referenzbits auf 0 z Ist eines der Bits = 1 ⇒ Seite ist in der Arbeitsmenge Warum ist dieses Verfahren nicht exakt? z Kann Zugriffe nur auf 5000 Zeiteinheiten genau bestimmen Verbesserung z 10 Bits und Unterbrechung alle 1000 Zeiteinheiten O. Waldhorst Betriebssysteme WS 05/06 z z 45 Weitere Gesichtspunkte z z z z z O. Waldhorst z z z Fragementierung Tabellengröße E/A Overhead Lokalität z Ansonsten viele Seitenfehler Kann interne Fragmentierung erhöhen Mehrere Seitengrößen z 47 Durch den TLB zugreifbarer Speicher TLB Reichweite = (TLB Größe) X (Seitengröße) Vergrößerung der Seiten z Betriebssysteme WS 05/06 46 Idealerweise sollte die Arbeitsmenge aller Prozesse im TLB gespeichert werden z z O. Waldhorst Betriebssysteme WS 05/06 TLB Reichweite (TLB Reach) z Seiten vorsorglich in den Speicher bringen Auswahl der Seitengröße z Ist Rate zu niedrig, wird Prozess Rahmen entzogen Ist Rate zu hoch, wird Prozess neuer Rahmen zugeteilt Weitere Gesichtspunkte Vorgezogenes Paging (Prepaging) z Arbeitsmengen-Modell ist etwas schwerfällig Erreichen einer „akzeptable“ Seitenfehler-Rate Flexible Nutzung ohne (große) interne Fragmentierung O. Waldhorst Betriebssysteme WS 05/06 48 Weitere Gesichtspunkte Weitere Gesichtspunkte z Programmstruktur z E/A z z z z O. Waldhorst Feld A[1024, 1024] von Integer-Zahlen Jede Zeile wird in einer Seite gespeichert, für die ein Seitenrahmen zur Verfügung steht Programm 1: for j := 1 to 1024 do for i := 1 to 1024 do A[i,j] := 0; z 1024 x 1024 Seitenfehler Programm 2 : for i := 1 to 1024 do for j := 1 to 1024 do A[i,j] := 0; z 1024 Seitenfehler Betriebssysteme WS 05/06 Beispiel: Windows XP z z z Betriebssysteme WS 05/06 O. Waldhorst Betriebssysteme WS 05/06 50 Beispiel: Solaris Benutzt Demand Paging mit Gruppierung (Clustering) z Gruppierung lädt Seiten um eine Seite mit Seitenfehler mit hin den Speicher Prozesse bekommen minimale und maximale Größe der Arbeitsmenge (working set minimum / maximum) zugewiesen z Minimale Größe ist Anzahl der Seiten, die ein Prozess garantiert im Hauptspeicher halten darf z Ein Prozess kann Seiten bis zur maximalen Größe zugewiesen bekommen Wenn der freie Speicher unter eine Schranke fällt, werden die Arbeitsmengen angepasst (Automatic Working Set Trimming) z Entfernt Seiten von Prozessen, die mehr als die minimale Größe haben O. Waldhorst Seiten müssen während E/A an fester Speicherstelle bleiben z 49 Sperre 51 z z Verwaltet Liste von freien Seiten, die Prozessen bei Seitenfehlern zugewiesen werden Parameter: z Lotsfree z Desfree z Minfree z z z z Schwellwert an freiem Speicher, bei dem Paging begonnen wird Schwellwert, bei dem Paging verstärkt wird Schwellwert, bei dem mit Auslagern (Swapping) begonnen wird Paging wir von speziellem Prozess (Pageout Process) durchgeführt z z Pageout bestimmt zu ersetzende Seiten mit modifiziertem Zweite-ChanceAlgorthmus Scanrate ist die Rate, mit der Seiten untersucht werden z z O. Waldhorst Variiert zwischen slowscan und fastscan Pageout wird häufiger aufgerufen, wenn nur wenig Speicher verfügbar ist Betriebssysteme WS 05/06 52 Beispiel: Solaris Nächste Stunde z z O. Waldhorst Betriebssysteme WS 05/06 53 Im Anschluss… Thema: Dateisystem O. Waldhorst Betriebssysteme WS 05/06 54