Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Modul: B-BS Betriebssysteme SS 2011 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik.

Ähnliche Präsentationen


Präsentation zum Thema: "Modul: B-BS Betriebssysteme SS 2011 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik."—  Präsentation transkript:

1

2 Modul: B-BS Betriebssysteme SS 2011 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Speicher-verwaltung

3 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 2 Speicherverwaltung Thrashing Speicherorganisation Virtueller Speicher Seitenersetzung Segmentierung, Caching

4 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 3 Speicherverwaltung Speicherverwaltung : Einteilung Anwenderprogramme interner Speicher: garbage collector Hauptspeicher Aufteilung auf Prozesse: globaler vs. Lokaler Speicher Massenspeicher internes Management bei Dateien (DBMS) Strategien Früher: Komplette Speicherbelegung (Prozeß) auslagern (swapping: langsam) Jetzt: Speicherteile (Prozeßteile) auslagern

5 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 4 Speicherverwaltung Speicherorganisation Zuordnung durch feste Tabellen Tabelleneinheit (z.B. 1Bit) gibt Zustand einer Speichereinheit (z.B. 32Bit-Wort) an 9 8A C 2 1B SpeicherbelegungBelegungstabelle FREI

6 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 5 Speicherverwaltung A.len = 3 A.start = 7 Speicherorganisation Zuordnung durch verzeigerte Listen SpeicherbelegungListe der Belegung 9 8A C 2 1B 0 FREI.len = 2 FREI.start = 5 C.len = 3 C.start = 2 B.len = 2 B.start = 0 Anfang FREI

7 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 6 Speicherverwaltung Speicherorganisation: Belegungsstrategien FirstFit Nimm das erste, ausreichend große Stück. Aber: Reststücke NextFit wie FirstFit, aber führe Speicherindex mit BestFit kleinste freie Stück, das paßt. Aber: winzige, unbrauchbare Reststücke WorstFit größte freie Stück, um große Reststücke zu erreichen QuickFit eine Liste pro Anforderungsgröße, also pro Datentyp Buddy-Systeme Listen von 2 n großen Speicherstücken: 256B, 512B, 1024B, 2048B,... Kein passendes Stück da: Zerteilen des nächstgrößeren. Verschmelzen mit jeweils dem Partnerstück bei gleichem Adressenanfang

8 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 7 Speicherverwaltung Speicherorganisation Bewertung der Belegungsstrategien FirstFit > NextFit, WorstFit, BestFit ex. Kenntnisse über Speicheranforderungen: QuickFit Leistungsfähigkeit der buddy-Systeme: mittl. Anforderung = ? tats. Belegung Überschlagsrechnung !

9 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 8 Speicherverwaltung Speicherorganisation Bewertung der Belegungsstrategien Leistungsfähigkeit der buddy-Systeme: Überschlagsrechnung: mittl. Anforderung = 75%, vergeudet 25% tats. Belegung schnell, aber nicht effizient Verbesserung: halbe oder viertel Partner (aber: Verwaltung!)

10 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 9 Frage Angenommen, Sie haben sowohl einige unregelmäßige Speicheranfragen als auch viele gleicher, vorher bekannter Größe. Welche Strategie implementieren Sie? Antwort: Hier ist eine Mischstrategie sinnvoll, also sowohl eine Qickfit-Verwaltung als auch ein FirstFit-Verwaltung. Speicherverwaltung

11 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 10 Speicherverwaltung Speicherorganisation Fragmentierung und Verschnitt Interner Verschnitt Interne Zersplitterung durch Heap-Belegung Abhilfe: garbage collector des Programmiersystems Externer Verschnitt Freier Platz zwischen den Programmen im Auslagerungsbereich Abhilfen: zuerst Einlagern großer Prozesse, dann Auffüllen mit kleinen. swapping kleiner Programme (gegen SJF-Strategie!) Speicheraufteilung in verschieden große Bereiche, jeder mit eigener Warteschlange (IBM OS/MFT): ineffizient! Zusammenschieben des Speichers: zeitaufwändig!

12 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 11 Speicherverwaltung Thrashing Speicherorganisation Virtueller Speicher Seitenersetzung Segmentierung, Caching

13 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 12 Speicherverwaltung Virtueller Speicher - Wozu? Probleme Probleme & Fixes Speicherzusatzbelegung von Programmen Unix: Prozeß auslagern, neuen Speicher reservieren, neu einlagern Externen Verschnitt zum Prozeß dazuschlagen (stack & heap) Relozierung von Programmcode rel. Adressen für GOTO bei allen CPU-Typen (!?) bei Einlagerung oder zur Laufzeit absolute Adr. errechnen Speicherschutz vor Programmen Betriebssystemkern darf nicht korrumpiert werden (fences,limits), spezielle HW-Einheit Programmiermodell soll klar, einfach und uniform sein (Fehlervermeidung)

14 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 13 Speicherverwaltung Forderung: lineares Programmiermodell Fragmente sollen zusammenhängend erscheinen Bei Speicheranforderung werden nur inaktive Programmteile ausgelagert Implementierung durch Memory Management Unit MMU Virtueller Speicher

15 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 14 Speicherverwaltung Grundmodell virtueller Adreßkonversion Virtuelle Adresse 6 Seitentabelle 7Basisadresse 7 6Basisadresse 6 5Basisadresse 5 4Basisadresse 4 3Basisadresse 3 2Basisadresse 2 1Basisadresse 1 0Basisadresse 0 Basisadresse 6 offset PageNroffset HSB LSB Bit Hauptspeicherbelegung ~ ~ ~ ~ ~ ~ Page 7 Page 6 Seiten- rahmen Basisadr. ex. nicht: page fault interrupt ! Suchen und Einlagern der benötigten Seite Prozeßkontext Physikal. Adresse

16 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 15 Speicherverwaltung Adreßkonversion Problem: virt. Adreßraum >> phys.Adreßraum Riesige Seitentabellen! Seitentabelle bei Seitengröße = offset = 12 Bit 4KB Seitenrahmen (page frame) Wortgröße Tabellengröße 16 Bit: 4 Bit 16 Einträge 32 Bit: 20 Bit 1 Mill. Einträge 64 Bit: 52 Bit Einträge Fix: Adreßbegrenzung Vorteil : kleiner Adreßraum, z.B. 30 Bit (1 GB) 18 Bit 256 KB Tabelle, aber auch bei 50KB- Prozeß! Nachteil: Vergeudung von Platz, da meist nicht benötigt !

17 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 16 Speicherverwaltung Adreßkonversion Multi-Level-Tabellen page base table Seitentabellen 2 Speicherbelegung (Seitentabelle1) 3nicht existent 2 1 0Seitenadresse7 3nicht existent 2Seitenadresse5 1Seitenadresse 1 0Seitenadresse 2 3nicht existent 2Seitenadresse 6 1Seitenadresse 3 0Seitenadresse 4 7Tafeladresse 7 6nicht existent Tafeladresse 1 0Tafeladresse 0 Seitentabelle Prozeßkontext 00101offset Virtuelle Adresse Page 3 ~ ~ ~ ~ Page 7 ~ ~ offset Linux: 10 Bit 10 Bit 12 Bit-Seite Linux: 1 MB Tabellen, 1 KB Tabelle jeweils 4KB 4GB Speicher

18 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 17 Speicherverwaltung Adreßkonversion: 3-Level Tabellen SPARC-Architektur (SUN)

19 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 18 Frage Angenommen, bei jedem Zugriff muss die virtuelle Adresse durch eine 3-level-Tabelle in eine physikalische Adresse übersetzt werden. Wieviel Leseschritte müssen mit der virtuellen Adresse durchgeführt werden, um schließlich das gewünschte Datum lesen zu können? Wie viele Verzögerungstakte erfährt also der Zugriff? Antwort Dekodieren der virtuellen Adresse: Auslesen der 1.Level-Tabelle: 1. Schritt Auslesen der 2.Level-Tabelle: 2. Schritt Auslesen der 3.Level-Tabelle: 3. Schritt Auslesen der physikalischen Adresse: 4. Schritt 3 von 4 Lesezugriffen sind overhead, also nur ¼ Leistung! Speicherverwaltung

20 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 19 Speicherverwaltung Adreßkonversion: 4-Level-Tabellen MC Motorola Problem: 4 von 5 Speicherzugriffen sind overhead

21 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 20 Speicherverwaltung Adreßkonversion Problem: Multi-Level-Tabellen sind langsam SPARC: 3-stufig, MC stufig (80% länger) und benötigen Tabellenplatz für jeden Prozeß extra. Lösung: Invertierte Seitentabellen Nimm nur die erfolgreichen Zugriffe.

22 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 21 Speicherverwaltung Adreßkonversion Problem: Inverse Tabellen sind langsam Durchsuchen der gesamten Tabelle Lösung: Assoziativer Tabellencache TLB Antwort X Translation Lookaside Buffer TLB

23 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 22 Speicherverwaltung Assoziativspeicher Realisierung eines CAM Anfrage Hit

24 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 23 Speicherverwaltung Virtueller Speicher: UnixLinux: 32 Bit, 0-3GB in user mode stack wächst nach unten, heap nach oben (malloc) Kernel nur in kernel mode zugreifbar, abgebildet auf 0-1GB phys. Adr. Memory-mapped devices (I/O map im kernel mode) 4GB I/O map kernel 3GB shared libs 2GB user stack u_area heap data 1GB user program 0 GB code

25 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 24 Speicherverwaltung Virtueller Speicher: Windows NT Version 5,5.1 (Win2000/XP): 32 Bit ( nicht 64 Bit Windows XP - X64/Vista) Virtual memory manager für Seitenverwaltung 4KB-64KB Seiten 2-stufige Seitentabellen page directory/ page table = PFD Shared memory Sonderregelung 3.Stufe: zentrale prototype page table Kernel mode Adressierung durch 30 Bit phys. Adresse, Start bei 0. 4 GB locked 3 GB paged 2 GB kernel user process 0 ( paged )

26 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 25 Speicherverwaltung Virtueller Speicher: Windows NT Verwaltung physikal. Seiten Page Frame Database PFD: Pro frame ein Eintrag Statusbits Validnormal benutzt Freefrei Zeroedfrei+initialisiert (C2) Standbynoch verfügbar Modifiednoch verfügbar + beschrieben Badphys. fehlerhaft

27 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 26 Speicherverwaltung Virtueller Speicher: Windows NT Modified Standby Free In Use Seitenpool Zustandsübergänge der Seiten C2-Sicherheit

28 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 27 Speicherverwaltung Virtueller Speicher: Windows NT Struktur zur Verwaltung der Zustände der Seiten VM status bits Tabelleneintrag PM status Phys. Seiten

29 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 28 Speicherverwaltung Shared Memory – wozu, wie Globale Variablen (Prozeßkommunikation) Gemeinsamer Puffer (Semaphor-geregelter Zugriff) Gemeinsam genutzer Code (C-Bibliothek,..) BS-geregelter Zugriff memory mapping Daten virt. Seite 5 Prozeß A RAM-Seite 123 phys. Speicher Daten virt.Seite 10 Prozeß B Daten virt. Seite 2 Prozeß C frei- geben

30 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 29 Speicherverwaltung Virtueller Speicher: Windows NT Shared memory Organisation Erzeugen eines section-Objekts mit Attribute: max. Größe, Schutz, paged ?, Adreßbeginn = ? Methoden: Erzeugen, Öffnen, Ausweiten, Ausschnitt wählen, Status r/w

31 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 30 Speicherverwaltung Virtueller Speicher: Windows NT Problem: shared virtual memory pages Page frame address normale Adressübersetzung Prototype PTE address Prozeß- unabhängige Tafel

32 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 31 Speicherverwaltung Virtueller Speicher: Windows NT Verwaltung der Zustände der shared memory- Seiten

33 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 32 Speicherverwaltung Thrashing Speicherorganisation Virtueller Speicher Seitenersetzung Segmentierung, Caching

34 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 33 Speicherverwaltung Seitenersetzung page- fault- Aktionen des Betriebssystem Auswahl einer alten Seite Lesen der gesuchten Seite vom Massenspeicher Ü berschreiben (Ersetzen) der alten Seite mit der gesuchten Seite Aktualisierung der Seiten-Tabelle mit der neuen Seitenadresse Aufsetzen des Proze ß -PC auf die Adresse des page-fault ausl ö senden Maschinenbefehls Ü bergabe der Kontrolle an den Benutzerproze ß Erneutes Abarbeiten der Adressreferenz Seitenauswahl – wie?

35 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 34 Speicherverwaltung Strategien zur Seitenersetzung Problem: Begrenzter Hauptspeicher. Welche alte Seite soll durch benötigte Seite ersetzt werden? (Scheduling für Seitenaustauschprozessor) Folge von benötigten Seiten = Referenzfolge Optimale Strategie(Belady 1966) Ersetze die Seite, die am spätesten benutzt werden wird Beispiel: page fault-Interrupts

36 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 35 Speicherverwaltung Strategien zur Seitenersetzung Problem Problem : Referenzfolge i.A. nicht bekannt. Ansatz :Statistik notieren pro Seite Bits R= referenced Reset durch Timer oder Ereignis M= modified FIFO-Strategien: Ersetze die älteste Seite nur älteste Seite ersetzen: Problem mit Hauptseite Beispiel:

37 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 36 Speicherverwaltung Strategien zur Seitenersetzung Der clock-Algorithmus Markierung im Ringpuffer älteste Seite kreist und zeigt auf auszulagernde Seite Überspringen einer Seite bei R = 1 (Second-Chance-Algorithmus) Älteste Seite Neue Seite

38 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 37 Speicherverwaltung Strategien zur Seitenersetzung Die NRU-Strategie ( Not Recently Used) Ersetze die Seite mit geringster Nutzung in einem gemeinsamen Zeitraum Mit Prioritätsliste bessere Statistik-Ausnutzung: 1) R = 0, M = 0wenigste Nutzung zuerst ersetzen. Clock-Alg! 2) R = 0, M = 1beschriebene Seite 3) R = 1, M = 0genutzte Seite 4) R = 1, M = 1genutzte beschriebene Seiten zuletzt Ersetze Seite mit kleinster Nummer (2R+M) Problem: Geringe Differenzierung (Seiten mit gleichem Status) Not Frequently Used (NFU), Least Frequently Used (LFU) Ersetze die Seite mit geringster Benutzungsfrequenz bzw. -dauer in einer Zeitspanne, z.B. Existenzzeit des Prozesses Problem : früher aktuelle Seiten dominieren zu lange, träges Verhalten Alterungsprozeß einführen! Linux : Einen Zähler pro Seite, bei jeder Referenz hochzählen, Dekrementieren durch Hintergrundsprozeß

39 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 38 Speicherverwaltung Strategien zur Seitenersetzung Die LRU-Strategie (Least Recently Used) Seite mit kleinster Benutzungswahrscheinlichkeit (längste Zeitspanne seit letzter Benutzung) zuerst ersetzen Beispiel: Zählen durch Schieberegister: 8 Bit-Zahl ~ Aktualität

40 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 39 Speicherverwaltung Arbeitsmenge (working set) eines Prozesses Minimale Seitenzahl pro Prozessfenster (Denning 1980) Beispiel: Variable A,B,C,D sind auf verschiedenen Seiten MOVE A,B MOVE C,D Denning Working set = 5, unabh ä ngig von evtl. zus ä tzlichen Seiten Mittlere Seitenzahl pro Prozess Methoden: demand paging: Einlagern von ben ö tigten Seiten prepaging: Vorheriges Einlagern des working set Prozessfenster Seitenmengen: Das working set Voraussetzung : Lokalitätsprinzip Voraussetzung : Lokalitätsprinzip!

41 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 40 Speicherverwaltung Seitenreferenzen: Lokalitätsprinzip Benutzte Seiten Ausführungszeitpunkte Einzelseiten sind zeitlich konstant!

42 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 41 Speicherverwaltung Strategien zur Seitenersetzung Die Working Set-Strategie Seite außerhalb des working set-Fensters zuerst ersetzen Fenster > Speichergröße Beispiel:

43 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 42 Frage Bei der working set-Strategie liegt eine Definition für working set zugrunde. Welche? a)Minimale Seitenzahl pro Prozessfenster (Denning) b)Mittlere Seitenzahl pro Prozess Speicherverwaltung

44 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 43 Speicherverwaltung Modellierung und Analyse Optimale Seitenlänge Hauptspeichergröße k gegeben. Opt.Seitengröße s opt ~ k ? Sei einstufige Seitentabelle mit k/s Einträgen pro Prozeß ex. Datenlänge ist aus ]0,s] mittl. Verschnitt s/2 mittl. Speicherverlust V(s) = (s/ 2 + k/s) größ. Seiten kleinere Tabellen, aber mehr Verschnitt klein. Seiten größere Tabellen, aber weniger Verschnitt Ableitung von Verlust V(s) wird null s opt = Optimum: (kurze Rechnung)

45 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 44 Speicherverwaltung Modellierung und Analyse Weitere Kriterien Weitere Kriterien für optimale Seitengröße: geringe zusätzl. Speicheranforderungen von stack oder heap: große Seiten haben hohen Verschnitt die Zeit, um eine Seite auf den Massenspeicher zu schieben: kleinere Seiten haben rel. höh. I/O overhead der Speicherverschnitt bei s > mittl. Dateigröße (1 KB ??) => nicht zu große Seiten! (aber: heutige mittl. Dateigröße?) Also: Kleine Seitengröße, große Transfermengen => I/O Clustermengen bilden, read ahead nutzen

46 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 45 Speicherverwaltung Modellierung und Analyse Optimale Seitenzahl Optimale Seitenzahl pro Prozeß ? Beispiel FIFO 4 vs. 5 Seiten für Referenzfolge Beladys Anomalie: Mehr Ersetzungen trotz mehr Seiten!

47 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 46 Speicherverwaltung Modellierung und Analyse Beispiel LRU 4 Seiten vs. 5 Seiten Stack-Notation Zeit LRU-Prioliste: Letzte genutzte Seite an den Anfang LRU-Ersetzungsliste mittels Stack-Liste implementierbar unabhängig von der RAM/DISK-Grenze Keine Anomalie für alle Stack-Algorithmen (LRU, LFU) beweisbar Genutzt vor Zeiteinheiten

48 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 47 Speicherverwaltung Thrashing Speicherorganisation Virtueller Speicher Seitenersetzung Segmentierung, Caching

49 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 48 Speicherverwaltung thrashing Beobachtung: Bei sehr vielen Prozessen läuft plötzlich das Gesamtsystem langsamer, stattdessen starke Plattenaktivität Erklärung: Wartezeiten kehren sich um CPU PPU n Prozesse, jeder mit k < m Seiten Keine Verzögerung: t S > t w > t S t W Prozeß 1 Prozeß 2 Prozeß 3

50 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 49 Speicherverwaltung Modellmenge M 2 (ausgelagerte Seiten) Modellmenge M (Working set) Analyse von thrashing Modellierung Anordnung der Seiten nach Referenzhäufigkeit. Referenzwahrscheinlichkeit p i der Seite i: 1 p i p c p 1 p 2 1 i M m Seitenindex i p(i) beobachtet Mittl. p(i)

51 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 50 Speicherverwaltung Analyse von thrashing Rechnung Seitenaustauschgrad = Funktion (Speicherangebot ) 1 ( ) = 2 ( ) =

52 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 51 Speicherverwaltung Analyse von thrashing Visualisierung Abhängigkeit Seitenaustauschgrad vom Speicherangebot Reduzierung von M 1 im Modell Reduzierung von M 1 +M 2 im Modell 2 1 alle Seiten gleich wah rscheinlich 1 T beobachtet 1 rel. Speicherangebot Seitenaustauschgrad

53 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 52 Speicherverwaltung Analyse von thrashing Rechnung Normalbetrieb vs. thrashing Beispiele rel. Bearbeitungsdauer G(n) Fälle W > T W < T

54 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 53 Speicherverwaltung Analyse von thrashing Systemverhalten bei W also W ( A) Linearer Bereich Thrashing - Bereich (B) Thrashing - Bereich i/o zu langsam Beispielrechnung Nichtlineare Auslastung bei geringem Seitenwechsel n 0 5 n G C G D G E n n Prozeßzahl G A Gesamtbearbeitungsdauer G B Systemverhalten bei W also W (C) Linearer Bereich Thrashing - Bereich (D) Thrashing - Bereich Starkes Thrashing (E) Starkes Thrashing working set zu gross Beispielrechnung Nichtlineare Auslastung bei hohem Seitenwechsel

55 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 54 Speicherverwaltung Anti-Thrashing Strategien Speicherangebot Speicherangebot muß genügen für working set bei gegebenem Verhältnis w = Seitenverweilzeit t S Seitenwechseldauer t T Page Fault Frequency-Modell PFF Wenn Seitenersetzungen pro Zeiteinheit (Seitentauschrate) > Schwelle, Prozesse stillegen. < Schwelle, Prozesse aktivieren. (Dynamische Strategie: etwas besser als die statische working-set-Strategie) Working Set-Modell nur so viele Prozesse, wie Speicher für alle working sets fester Größe reicht (z.B. Siemens:BS2000, IBM:CP67) Programmierungsmaßnahmen lokaler code (inline), lokale Adressreferenzen, (z.B. Matrizenmultiplikation) kleines T (nötige Seitenzahl) Hardwaremaßnahmen Große Seiten großes t S (Festplattenverzögerung!), mehrere parallele swap-Festplatten kleineres t T

56 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 55 Speicherverwaltung Anti-Thrashing Strategien Das Nutzungsgradmodell L(n,t) = w 1 CPU + w 2 PPU Nutzungsgrad Adaptive Regelung der Auslastungen Messe L(n,t) und entscheide: Abfallen von L(.) aktiviere Prozesse Ansteigen von L(.) deaktiviere Prozesse

57 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 56 Speicherverwaltung Anti-Thrashing Strategien Lazy evaluation Vermeide unnötigen Seitentausch Copy On Write Seitenkopie erst durchführen, wenn darauf geschrieben wird Page Out Pool Auszulagernde Seiten zwischen-speichern (standby) Globale vs. lokale Strategien Initiale Speicheraufteilung je nach Prozessgröße, lokale Seitenersetzungsstrategie. Strategien (LRU,...) nicht isoliert pro Prozess, sondern global für alle Seiten aller Prozesse (z.B. PFF gleich für alle Prozesse). Nachteil: Als nicht gerecht empfunden

58 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 57 Speicherverwaltung Seitenpool Windows NT: page out pool Modified Standby Free In Use Zustandsübergänge der Seiten

59 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 58 Speicherverwaltung Andere SeitenproblemeProbleme Aufsetzen: Page faults und Instruktionsgrenzen Bei Seitenfehler: Wiederholung des Befehls. Aber wo fing er an? Rekonstruktionszeit nötig bei Microcode. Verstreute Optimierungsmethoden: Paging Demon Kapselung als idle-Prozeß, z.B. für page out pool Verbotene Auslagerung: I/O Pages und Shared Pages DMA für ausgelagerte Prozesse: Fehler! Gemeinsame Bibliotheken, shared memory: Probleme beim Auslagern!

60 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 59 Speicherverwaltung Unix: Seitenersetzungsstrategien HP-UX: Swapping vs. Paging Swapping: schneller Zugriff, z.B. für Prozeßauslagerung z.B. extra swap disk, swap section einer Platte, swap directory im Dateisystem swapper demon freierSpeicher < desfree: swapper demon desaktiviert Prozesse + sweep out, bis Min. erreicht. Min,Max für Hysterese gegen Seitenflattern Hintergrundprozesse Pageout demon desfree < freierSpeicher < 25% des Anwenderspeichers: periodischer reset des R-Bits, t warten, Auslagern der Seiten mit R=0

61 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 60 Speicherverwaltung Windows NT: Seitenersetzungsstrategien FIFO-Seitenersetzung im Normalfall Keine globale Seitenabstimmung der Prozesse, da lokales Seitenmanagement pro Prozeß subjektiv gerechter Wenig aufwendig Auslagerung häufig benutzter Seiten gemildert durch page out pool Automatic Copy on write unnötiges Kopieren verhindern Neue Prozesse (POSIX): copy on write für Daten-Seiten verhindert Kopieren von Elternseiten für Kinder (z.B. Code+Daten) Dynamic Link Library DLL nur bei write für Daten kopiert, sonst nicht. Automatic workset trimming zu wenig Speicher da Alle Prozesse mit aktueller Seitenzahl (working set) >min verkleinern Bei Seitenfehlern wird working set geclustert vergrößert (größere effektive Seitenlänge!)

62 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 61 Speicherverwaltung Thrashing Speicherorganisation Virtueller Speicher Seitenersetzung Segmentierung, Caching

63 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 62 Speicherverwaltung ES Extended- Daten Segmentverwaltung Problem Speicherfragmentierung ? Segmentregister: Seitentabelle Segmenttabelle Beispiel: Intel Speicher CS Code DS Daten SS Stack

64 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 63 Speicherverwaltung Segmentierung Segmente Segmente statt globalem linearem Adressraum Problem: Kollision der Adreßräume bei wachsenden Datenstrukturen UNIX-Segmente Oberer Speicher (Heap) Daten Programm Laufzeitsystem Stack Argumente/ Optionen Compiler-Segmente Symboltabellen Quelltext Tabellen Parser- Baumstrukturen Stack

65 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 64 Speicherverwaltung Segementverwaltung Lokale und globale Seitentabellen INTEL Pro Prozeß: Local Description Table LDT Alle Prozesse: Global Description Table GDT LDT-Register LDT GDT-Register GDT Daten Segment Code Segment Code Segment Code Segment Daten Segment Globale Segmente Prozeß B LDT Code Segment Daten Segment Prozeß A CPU

66 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 65 Speicherverwaltung Cache Beispiel: AMD Opteron 64 Bit, L1 und L2 Cache

67 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 66 Speicherverwaltung Cache Schneller Speicherzugriff durch schnellen Hilfsspeicher (Cache) bei Lokalitätseigenschaft Pipeline-burst-Cache Befehls/Daten-Cache

68 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 67 Speicherverwaltung Cache Konsistenzproblem Alte DatenNeue Daten Lösungen nCPU schreibt zurück write through n Cache schreibt zurück write back n Aktualisieren copy back mittels snooper bei M=1 Beispiel: Intel MESI Statuswort pro Cachezelle, parallele Cache-Validierung durch alle snooper Adresse Read Daten Write Prozessor CACHE Speicher DRAM Ein-/ Ausgabe- einheiten DMA

69 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 68 Speicherverwaltung Speicherschutz Virt.Speicher: keine Adressiermöglichkeit des Nachbarn Zugriffsrechte bei jeder Seite bzw. Segment (UNIX, NT) VM Manager (Windows NT) Execute only Gemeinsame Bibliotheken Guard Page Bei Benutzung Signalerzeugung guard page exception No Access bei nichtex. oder gesperrten Seiten: Debuggingsignal Copy on Write Speicherschutz: Bei Zugriff nur Schreiben auf Kopie

70 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 69 Speicherverwaltung Speicherschutz CPU-Sicherheitsstufen kernel mode vs. user mode z.B. Intel 80386: real mode virtual mode Real mode direkter phys. Speicherzugriff, keine MMU Virtual mode nicht rücksetzbar Stufe 3: User Stufe 2: shared libs Stufe 1: system calls Stufe 0: Kernel(Ring0-Mode) Zugriff und Sprünge nur auf Seiten mit größerer/gleicher Statuszahl, kontrollierter Aufruf von kleinerem Status.


Herunterladen ppt "Modul: B-BS Betriebssysteme SS 2011 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik."

Ähnliche Präsentationen


Google-Anzeigen