Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Modul: B-BS Betriebssysteme SS 2014 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 2014 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 2014 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. Schnelles Verschmelzen mit jeweils dem Partnerstück bei gleichem Adressenanfang: 0xxx + 1xxx Xxxx

8 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 7 Speicherorganisation; Buddy-System Beispiel Speicherverwaltung x x x 0 x x Anforderung: 3 Einheiten Zugeteilt: 4 = 2 2 Einheiten 0xx

9 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 8 Speicherorganisation; Buddy-System Beispiel Speicherverwaltung x x 0 x x Anforderung: 3 Einheiten Zugeteilt: 4 = 2 2 Einheiten 0xx Freigabe: 0xx - Stück Verschmelzen: 0xx mit 1xx- Buddy zu Xxx - Stück Unbenutzt: 1xx - Stück x x x

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

11 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 10 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!)

12 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 11 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

13 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 12 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!

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

15 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 14 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)

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

17 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 16 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

18 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 17 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 !

19 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 18 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

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

21 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 20 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

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

23 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 22 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, geordnet nach reell. Seiten Nimm nur die erfolgreichen Zugriffe.

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

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

26 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 25 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

27 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 26 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 )

28 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 27 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

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

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

31 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 30 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

32 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 31 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

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

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

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

36 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 35 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?

37 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 36 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 Problem Problem: Referenzfolge i.A. nicht bekannt.

38 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 37 Speicherverwaltung Strategien zur Seitenersetzung FIFO-Strategie : Ersetze die älteste Seite Beispiel:

39 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 38 Speicherverwaltung Strategien zur Seitenersetzung Problem: Wenn älteste Seite ersetzt, immer zuerst die Hauptseite. Ansatz:Statistik notieren pro Seite Bits R= referenced Reset durch Timer M= modifiedoder Ereignis Second-Chance-Algorithmus: Überspringen einer Seite bei R = 1 Der clock-Algorithmus Markierung im Ringpuffer älteste Seite kreist, und zeigt auf auszulagernde Seite. (Effiziente Implementierung von second chance) Älteste Seite Neue Seite

40 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 39 Speicherverwaltung Strategien zur Seitenersetzung Die LRU-Strategie (Least Recently Used) Seite mit geringster Benutzung (größter Zeitdauer seit letztem Benutzen) zuerst ersetzen Beispiel: Messen durch Shift des R-Bits in einer Zahl pro Seite: 8 Bit-Zahl ~ Aktualität pro Seite

41 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 40 Speicherverwaltung Strategien zur Seitenersetzung Die NRU-Strategie ( Not Recently Used) Ersetze die Seite mit geringster Nutzung in einem gemeinsamen Zeitraum, etwa der Existenzzeit des Prozesses oder periodischer Resetzeit. Mit einer Prioritätsliste gibt es bessere Statistik-Ausnutzung: 0) R = 0, M = 0wenigste Nutzung zuerst ersetzen. Clock-Alg! 1) R = 0, M = 1beschriebene Seite 2) R = 1, M = 0genutzte Seite 3) R = 1, M = 1genutzte beschriebene Seiten zuletzt Ersetze Seite mit kleinster Nummer (2R+M) Problem: Geringe Differenzierung (Viele Seiten mit gleichem Status), nur 4 Benutzungsfrequenzen

42 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 41 Speicherverwaltung Strategien zur Seitenersetzung Not Frequently Used (NFU), Least Frequently Used (LFU) Ersetze die Seite mit geringster Benutzungsanzahl bzw. -dauer in einer Zeitspanne. Dies entspricht der NRU, aber mit mehr möglichen Zuständen, also einem feiner abgestuften Verhalten. Problem : früher aktuelle Seiten dominieren zu lange, trägesVerhalten. Alterungsprozeß einführen! z.B. Linux : Einen Zähler pro Seite, bei jeder Referenz hochzählen, Dekrementieren (altern) durch Hintergrundprozeß

43 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 42 Speicherverwaltung Die 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 für working set : demand paging: Einlagern von ben ö tigten Seiten prepaging: Vorheriges Einlagern des working set Prozessfenster Seitenmengen: Das working set

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

45 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 44 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

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

47 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 46 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!

48 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 47 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

49 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 48 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)

50 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 49 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

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

52 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 51 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

53 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 52 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)

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

55 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 54 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

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

57 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 56 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

58 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 57 Speicherverwaltung Anti-Thrashing Strategien Speicherangebot Speicherangebot muß genügen für working set bei gegebenem Verhältnis w = Seitenverweilzeit t S (gegebener Zeitscheibe und I/O DMA) 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

59 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 58 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

60 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 59 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

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

62 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 61 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!

63 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 62 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 desfree erreicht. System V: Min, Max-Markierungen 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

64 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 63 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!)

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

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

67 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 66 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

68 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 67 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

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

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

71 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 70 Speicherverwaltung Cache Probleme 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

72 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 71 Speicherverwaltung Speicherschutz Virt.Speicher: keine Adressiermöglichkeit des Nachbarn Memory curtaining: spezielle HW-geschützte Speicheradressen Sealed Storage: HW-Kontext (HASH-Wert) geht in Kodierung ein 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

73 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 72 Ring 3 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(Ring 0-Mode) Zugriff und Sprünge nur auf Seiten mit größerer/gleicher Statuszahl, kontrollierter Aufruf von kleinerem Status. Ring 2 Ring 1 Speicherverwaltung Speicherschutz Ring 0


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

Ähnliche Präsentationen


Google-Anzeigen