Virtueller Speicher 1

Ähnliche Dokumente
Leichtgewichtsprozesse

10.1 Seitentauschverfahren. Kapitel 10 Algorithmen zur Speicherverwaltung. Auswahlstrategie. Modellierung der Seitenzugriffe

Speicherverwaltung (Swapping und Paging)

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

Tutorium Rechnerorganisation

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Betriebssysteme I WS 2016/2017. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

Betriebssysteme Sommersemester Betriebssysteme. 5. Kapitel. Adressumsetzung. Dr. Peter Tröger / Prof. M. Werner. Professur Betriebssysteme

Dr. Peter Tröger / Prof. M. Werner

Konzepte von Betriebssystem- Komponenten Olessia Usik 20. Juni 2005

5.5.5 Der Speicherverwalter

RO-Tutorien 15 und 16

Linux Paging, Caching und Swapping

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

2.3 Prozessverwaltung

Lineare Speicherverwaltung

(Cache-Schreibstrategien)

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

1. Welche Speichereinheiten werden belegt, wenn die folgenden Strategien eingesetzt werden?

Virtueller Speicher WS 2011/2012. M. Esponda-Argüero

Übung zu Einführung in die Informatik # 10

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Wunschvorstellung der Entwickler vom Speicher

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann

Virtueller Speicher und Memory Management

Lösung von Übungsblatt 2

Grob-Struktur des Prozessor-Speichersystems

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Übung zu Grundlagen der Betriebssysteme. 14. Übung

Kapitel 9 Hauptspeicherverwaltung

5 Kernaufgaben eines Betriebssystems (BS)

Hauptspeicherverwaltung - Memory Management

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Memory Management. Peter Puschner Institut für Technische Informatik

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

RO-Tutorien 17 und 18

Fachbericht Thema: Virtuelle Speicherverwaltung

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

9) Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Betriebssysteme. Wintersemester Kapitel 3 Speicherverwaltung. Patrick Kendzo

Einführung in die technische Informatik

Adreßräume. Motivation. Seitenersetzung (Paging) Systemsoftware. = Referenzlokalität. Seite 2.1. Instruktionen werden wiederholt ausgeführt

Zwei Möglichkeiten die TLB zu aktualisieren

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

4.3 Hintergrundspeicher

8. Swapping und Virtueller Speicher

virtueller Speicher - Trennung des logischen Speichers der Anwendung vom physikalischen Speicher.

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Betriebssysteme. Speicherverwaltung - Grundlegende Konzepte. Sommersemester 2014 Prof. Dr. Peter Mandl. Prof. Dr. Peter Mandl Seite 1.

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Grundlagen der Informatik III Wintersemester 2010/2011

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Echtzeitbetriebssysteme

1 Ab welchen Zeitpunkt kann man Thrashing bei einem PC beobachten? 2 Auf was muss man beim gleichzeitigen Datenzugriff mehrerer Prozesse beachten?

Echtzeit-Multitasking

Echtzeit-Multitasking

Assignment #2. Virtueller Speicher Virtual Memory WS 2012/2013 IAIK 1

Technische Informatik 1 - HS 2017

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Lösung von Übungsblatt 5

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Vorlesung Betriebssysteme

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?

Rechnernutzung in der Physik. Betriebssysteme

Kapitel Adressräume. Layout eines logischen Adressraums. Mehrere Prozesse im logischen Adressraum. Hauptspeicherverwaltung

Betriebssysteme 1. Thomas Kolarz. Folie 1

(Prüfungs-)Aufgaben zum Thema Speicherverwaltung

Betriebssysteme Vorstellung

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

9 Speicherorganisation

Speicherorganisation

Betriebssysteme 1. Thomas Kolarz. Folie 1

Speicherverwaltung. Kapitel VI. Adressbindung (2) Adressbindung (1) Speicherverwaltung

Freispeicherverwaltung Martin Wahl,

Betriebssysteme (BTS)

Linux Memory Management für MySQL

Überlegungen beim Entwurf eines Betriebssystems

Betriebssysteme 1. Thomas Kolarz. Folie 1

Hans-Georg Eßer, Hochschule München, Betriebssysteme I, SS Speicherverwaltung 1

Grundlagen der Informatik III Wintersemester 2010/2011

Technische Informatik 1

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Cache Blöcke und Offsets

Prozesse und Scheduling

Bibliotheks-basierte Virtualisierung

4. Übung - Rechnerarchitektur/Betriebssysteme

Rechnergrundlagen SS Vorlesung

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Transkript:

Betriebssysteme Sommersemester 2017 Betriebssysteme 6. Kapitel Virtueller Speicher 1 Dr. Peter Tröger / Prof. M. Werner Professur Betriebssysteme 1 Aktualisierte Fassung vom 29.6.17

6.1 Einführung Motivation Betriebssysteme Virtueller Speicher 1 6.1 Einführung Ausführung eines Programms: Instruktionen liegen im Speicher vor CPU lädt diese und führt sie aus (program counter, Assembler) Hardware beherrscht absolute und relative Adressierung Wie bei vielen Ressourcen wird auch bei Speicher zwischen physischer und logischer Ressource unterschieden Konzept des Adressraums In diesem Zusammenhang gibt es eine Reihe von Problembereichen: Zuordnung logischen zu physischen Adressraum Adressumsetzung Effektive Nutzung von Speicher Virtueller Speicher Speicherverwaltung innerhalb des logischen Adressraums SoSe 2017 P. Tröger / M. Werner 2 / 33 osg.informatik.tu-chemnitz.de

schneller, teurer, kleiner Register Cache Hauptspeicher langsamer, billiger, größer Massenspeicher (Magnetplatte, Solid State Disk,...) Archiv (Band, CD-ROM,...) Zusammenspiel der einzelnen Hierachiestufen SoSe 2017 P. Tröger / M. Werner 3 / 33 osg.informatik.tu-chemnitz.de

Lokalitätsprinzip Speicherhierarchie beruht auf dem Lokalitätsprinzip (Principle of locality) Programm greift in kleinen Zeitraum t nur auf kleinen Teil seines Adressraums A zu Prinzip der räumlichen Lokalität Wird auf eine Adresse a zugegriffen, so ist Zugriff auf eine Adresse in der Nähe von a wahrscheinlich. Prinzip der zeitlichen Lokalität Wird auf eine Adresse a zugegriffen, so ist erneuter Zugriff auf a in Kürze wahrscheinlich. SoSe 2017 P. Tröger / M. Werner 4 / 33 osg.informatik.tu-chemnitz.de

Caching vs. Virtualisierung Schicht k-1 Schicht k Schicht k+1 Caching Virtualisierung transparent sichtbar transparent Programmierer/Nutzer einer Speicherhierarchie sieht i.d.r. nicht alle Schichten einige sind transparent Zugriffe beziehen sich auf Schicht k De-facto-Zugriff auf Schicht k 1 Caching De-facto-Zugriff auf Schicht k + 1 Virtualisierung Durch Caching werden die Zugriffe schneller, durch Virtualisierung wird Kapazität größer SoSe 2017 P. Tröger / M. Werner 5 / 33 osg.informatik.tu-chemnitz.de

Zuständigkeit während der Ausführung Zuständigkeit Hardware Hardware Betriebssystem Betriebssystem, Benutzer Prozessorregister Cache Hauptspeicher Magnetplatte Magnetband Transfereinheit Wort (z.b. 8 Byte) Cache-Line (z.b. 64 Byte) Plattenblock (z.b. 4KByte) Datei (variabel) Transport der Daten und Befehle zwischen Hauptspeicher, Cache und Prozessor von der Hardware direkt erledigt Zugriffe auf die Platte sind Aufgabe des Betriebssystems Aus- und Einlagern von Dateien auf/vom Archivspeicher wird entweder explizit vom Benutzer angestoßen oder automatisch vom Betriebssystem (Dateisystem) durchgeführt SoSe 2017 P. Tröger / M. Werner 6 / 33 osg.informatik.tu-chemnitz.de

Flüchtiger vs. Permanenter Speicher Bedingt durch die eingesetzten Medien sind die oberen Ebenen der Speicherhierachie flüchtig, die unteren permanent Entsprechend werden sie eingesetzt z.b. Programmvariablen vs. persistente Daten Problem: Caching und Virtualisierung führen zur Aufweichung dieser Einteilung Unerwünschte Speicherung Unerwarteter Ausfall flüchtiger Speicher temporäre Daten (Programmvariablen) Datei -Cache Programm AR Hauptspeicher nichtflüchtiger Speicher permanente Daten (Dateien) Caching Dateien Virtualisierung Paging area Magnetplatte SoSe 2017 P. Tröger / M. Werner 7 / 33 osg.informatik.tu-chemnitz.de

Methoden zur Virtualisierung Häufig ist der Hauptspeicher nicht hinreichend für alle Prozesse Daher gibt es mehrere Ansätze, größeren Speicher aus der Speicherhierachie (Festplatte) zu nutzen: Swapping 2 : ein Prozess läuft nur, wenn er vollständig im Hauptspeicher ist; Prozesse werden wiederholt vollständig ein- und ausgelagert z.b. frühes UNIX Memory Overlay: Prozesse betreiben eigenes Speichermanagement und lagern Teile ihres Speichers in Dateien ein und aus z.b. häufig in MS-DOS Demand Paging: Prozesse laufen auch wenn nur ein Teil von ihnen im Hauptspeicher liegt fast alle modernen Betriebssysteme Demand Paging ist State of the Art und wird im Folgenden betrachtet 2 Achtung: Aus historischen Gründen wird der Begriff Swapping auch dort gebraucht, wo er technisch nicht korrekt ist. SoSe 2017 P. Tröger / M. Werner 8 / 33 osg.informatik.tu-chemnitz.de

Demand Paging Idee: Automatisierte Verknüpfung von streuender Adressierung und Speicherhierachie Nichtbenötigten Speicherbereiche werden auf Platte ausgelagert und auf Anforderung eingelagert Demand Paging Für Benutzer/Programmierer transparent Mengenbeschränkung des Hauptspeichers wird ersetzt durch Mengenbeschränkung des Auslagerungsmediums (praktisch unbegrenzt) Dieser unbegrenzte Speicher ist jedoch nur virtuell vorhanden SoSe 2017 P. Tröger / M. Werner 9 / 33 osg.informatik.tu-chemnitz.de

Datenstrukturen Abwesenheit einer Speicherseite muss automatisch erkannt werden Zugriff aus nicht vorhandene Seite löst Unterbrechung aus (Seitenfehler) Zusätzliche Verwaltungsinformationen notwendig: Seite im Hauptspeicher vorhanden? Präsenzbit (presence bit, valid bit, nur bei Seitentabelle) Dokumentation des Seitenzugriffs? Referenzinformation, evtl. nur ein Bit (reference bit) Seite verändert? Modifikationsbit (dirty bit) Ggf. werden auch Rechte gespeichert Schutzbit(s) (protection bit(s)) SoSe 2017 P. Tröger / M. Werner 10 / 33 osg.informatik.tu-chemnitz.de

Seitentabelle bei virtuellem Speicher Seiten Speicher (Kacheln) 1 1 0 1 0 1 1 0 0 1 0 1 Seitentabelle 1 0 0 0 0 1 Modifikation Zugriff (Referenzierung) Präsenz SoSe 2017 P. Tröger / M. Werner 11 / 33 osg.informatik.tu-chemnitz.de

Beispiel: Seitentabelleneintrag bei X86 Res (writable on MP Systems) Res Res Reserved bits Global Res (large page if PDE) are used only when PTE is not valid Dirty Accessed Cache disabled Write through Owner Write (writable on MP Systems) 31 12 0 Page frame number U P Cw Gi L D A Cd Wt O W V valid 29 SoSe 2017 P. Tröger / M. Werner 12 / 33 osg.informatik.tu-chemnitz.de

Aufgaben bei der Verwaltung Das Betriebssystem hat bei der Verwaltung virtuellen Speichers drei Aufgabenbereiche: Belegung Ersatzspeicher initialisieren, Ersatzspeicher belegen Zugriff Auf Seitenfehler reagieren Freigeben Seitenrahmen freigeben, Ersatzspeicher freigeben Seitentausch ist zeitkritisch, daher effiziente Parallelisierung ISR des Seitenfehlers blockiert auslösenden Prozess, kümmert sich aber nicht um Seitentausch Spezieller Prozess (Seitentauscher) organisiert Seitentausch Da Seitenfehler oft stoßweise auftreten, z.t. weitere Parallelisierung durch Kachelleerer Organisiert Vorrat freier Seitenrahmen SoSe 2017 P. Tröger / M. Werner 13 / 33 osg.informatik.tu-chemnitz.de

Seitenfehler Seitenfehler leere Kachel verfügbar? Nein Ja Ausräumen Kachel zum Räumen auswählen Kachelinhalt (Seite) modifiziert? Ja Nein Seite auslagern auf Ersatzspeicher Neue Seite einlagern von Ersatzspeicher Einräumen Eintrag Kacheltabelle Eintrag Seitentabelle SoSe 2017 P. Tröger / M. Werner 14 / 33 osg.informatik.tu-chemnitz.de

Seitenfehler Seitenfehler leere Kachel verfügbar? Nein Ja Ausräumen Kachel zum Räumen auswählen Kachelinhalt (Seite) modifiziert? Ja Nein Seite auslagern auf Ersatzspeicher zeitaufwändig! Neue Seite einlagern von Ersatzspeicher Einräumen Eintrag Kacheltabelle Eintrag Seitentabelle 1 Aktualisierte Fassung vom 29.6.17 SoSe 2017 P. Tröger / M. Werner 14 / 33 osg.informatik.tu-chemnitz.de

Seitenfehler Seitenfehler leere Kachel verfügbar? Nein Ja Ausräumen Kachel zum Räumen auswählen Kachelinhalt (Seite) modifiziert? Ja Seite auslagern auf Ersatzspeicher Nein Strategieproblem Einräumen Neue Seite einlagern von Ersatzspeicher Eintrag Kacheltabelle Eintrag Seitentabelle 1 Aktualisierte Fassung vom 29.6.17 SoSe 2017 P. Tröger / M. Werner 14 / 33 osg.informatik.tu-chemnitz.de

6.2.1 Auswahlstrategien Auswahlstrategien Seitenfehlerrate hängt davon ab, welche Seiten im Hauptspeicher gehalten und welche ausgelagert werden Designparameter: Global vs. lokal: Werden nur Seiten des den Seitenfehler auslösenden Prozesses betrachtet oder alle? Strategie (policy): Welche Auswahl minimiert die Anzahl der Seitenfehler? Betrachten im Folgenden stets diese Beispiel: Speichergröße: 3 Seitenrahmen Referenzsequenz: 0 2 4 3 2 3 0 1 0 3 0 2 Beispiel bei zufälliger Strategie Zeit: 1 2 3 4 5 6 7 8 9 10 11 12 Referenz: 0 2 4 3 2 3 0 1 0 3 0 2 Rahmen 1 0 0 0 0 2 2 2 2 2 2 0 0 Rahmen 2 2 2 3 3 3 0 0 0 3 3 3 Rahmen 3 4 4 4 4 4 1 1 1 1 2 7 Seitersetzungen, 10 Seitenfehler SoSe 2017 P. Tröger / M. Werner 15 / 33 osg.informatik.tu-chemnitz.de

Optimale Auswahlstrategie Zufällige Strategie nutzt keinerlei Information über Referenzfolge Ziel einer optimale Strategie: bei gegebener Referenzfolge sollen Anzahl Seitenfehler minimiert werden Perfektes Orakel: Entferne die Seite, die am längsten nicht mehr benötigt werden wird 3 Seitersetzungen 6 Seitenfehler Zeit: 1 2 3 4 5 6 7 8 9 10 11 12 Referenz: 0 2 4 3 2 3 0 1 0 3 0 2 Rahmen 1 0 0 0 0 0 0 0 0 0 0 0 2 Rahmen 2 2 2 2 2 2 2 1 1 1 1 1 Rahmen 3 4 3 3 3 3 3 3 3 3 3 Nicht realisierbar (benötigt Wissen über Zukunft!) Aber: A-Posteriori-Vergleich für andere Strategien Realisierbare Strategien nutzen Lokalitätsprinzip und nehmen die Vergangenheit als Schätzwert für die Zukunft SoSe 2017 P. Tröger / M. Werner 16 / 33 osg.informatik.tu-chemnitz.de

FIFO 4 Seitersetzungen 7 Seitenfehler Zeit: 1 2 3 4 5 6 7 8 9 10 11 12 Referenz: 0 2 4 3 2 3 0 1 0 3 0 2 Rahmen 1 0 0 0 3 3 3 3 3 3 3 3 2 Rahmen 2 2 2 2 2 2 0 0 0 0 0 0 Rahmen 3 4 4 4 4 4 1 1 1 1 1 Problem: Anomalie Die Anzahl der Seitenersetzungen sollte bei steigender Anzahl von Seitenrahmen monoton fallen Diese Eigenschaft trifft auf die FIFO-Strategie nicht zu SoSe 2017 P. Tröger / M. Werner 17 / 33 osg.informatik.tu-chemnitz.de

Anomalie bei FIFO 4 Seitenrahmen Zeit: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Referenz: 0 1 2 3 4 0 1 5 6 0 1 2 3 5 6 Rahmen 1 0 0 0 0 4 4 4 4 6 6 6 6 6 6 6 Rahmen 2 1 1 1 1 0 0 0 0 0 0 2 2 2 2 Rahmen 3 2 2 2 2 1 1 1 1 1 1 3 3 3 Rahmen 4 3 3 3 3 5 5 5 5 5 5 5 5 7 Seitenersetzungen / 11 Seitenfehler 5 Seitenrahmen Zeit: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Referenz: 0 1 2 3 4 0 1 5 6 0 1 2 3 5 6 Rahmen 1 0 0 0 0 0 0 0 5 5 5 5 5 3 3 3 Rahmen 2 1 1 1 1 1 1 1 6 6 6 6 6 5 5 Rahmen 3 2 2 2 2 2 2 2 0 0 0 0 0 6 Rahmen 4 3 3 3 3 3 3 3 1 1 1 1 1 Rahmen 5 4 4 4 4 4 4 4 2 2 2 2 8 Seitenersetzungen / 13 Seitenfehler SoSe 2017 P. Tröger / M. Werner 18 / 33 osg.informatik.tu-chemnitz.de

LFU (Least Frequently Used) LFU-Algorithmus hat für alle Seiten einen Zähler, der bei jedem Zugriff inkrementiert wird. Seite mit geringestem Zählerstand wird entfernt Zeit: 1 2 3 4 5 6 7 8 9 10 11 12 Referenz: 0 2 4 3 2 3 0 1 0 3 0 2 Rahmen 1 0 0 0 3 3 3 3 3 3 3 3 3 Rahmen 2 2 2 2 2 2 2 2 2 2 2 2 Rahmen 3 4 4 4 4 0 1 0 0 0 0 0 1 1 1 1 1 1 2 2 3 3 4 4 1 - - - - - - - 1 1 1 1 1 Zähler 2-1 1 1 2 2 2 2 2 2 2 3 3 - - - 1 1 2 2 2 2 3 3 3 4 - - 1 1 1 1 1 1 1 1 1 1 4 Seitenersetzungen 7 Seitenfehler SoSe 2017 P. Tröger / M. Werner 19 / 33 osg.informatik.tu-chemnitz.de

LRU (Least Recently Used) Die am längsten nicht mehr referenzierte Seite wird entfernt Mögliche Implementation über Warteschlange Seite am Anfang der Warteschlange wird ersetzt Referenzierte Seiten kommen wieder an das Ende der Warteschlange Zeit: 1 2 3 4 5 6 7 8 9 10 11 12 Referenz: 0 2 4 3 2 3 0 1 0 3 0 2 Rahmen 1 0 0 0 3 3 3 3 3 3 3 3 3 Rahmen 2 2 2 2 2 2 2 1 1 1 1 2 Rahmen 3 4 4 4 4 0 0 0 0 0 0 (Ende) 0 2 4 3 2 3 0 1 0 3 0 2 Warteschlange 0 2 4 3 2 3 0 1 0 3 0 (Anfang) 0 2 4 4 2 3 3 1 1 3 4 Seitenersetzungen 7 Seitenfehler SoSe 2017 P. Tröger / M. Werner 20 / 33 osg.informatik.tu-chemnitz.de

RNU (Recently Not Used) Ähnlich LRU, aber mit festem Zeitfenster der Länge k, das über Referenzfolge gelegt wird Entfernt werden kann jede Seite, die innerhalb des Fenstern nicht referenziert wurden k ist so zu wählen, dass Anzahl der RNU-Seiten klein ist, aber > 0 Beispiel für k = 2 Zeit: 1 2 3 4 5 6 7 8 9 10 11 12 Referenz: 0 2 4 3 2 3 0 1 0 3 0 2 Rahmen 1 0 0 0 3 3 3 3 3 3 3 3 3 Rahmen 2 2 2 2 2 2 2 1 1 1 1 2 Rahmen 3 4 4 4 4 0 0 0 0 0 0 0 2 4 3 2 3 0 1 0 3 0 2 Fenster - 0 2 4 3 2 3 0 1 0 3 0 4 Seitenersetzungen 7 Seitenfehler SoSe 2017 P. Tröger / M. Werner 21 / 33 osg.informatik.tu-chemnitz.de

Thrashing Betriebssysteme Virtueller Speicher 1 Ziel: Gute Prozessorauslastung Viele Programme gleichzeitig bearbeiten Hoher Grad n der Nebenläufigkeit Geringe Speichermenge pro Prozess Kurze Zeit zwischen zwei Seitenfehlern Stau am Seitentauschgerät (Platte) Fast alle Prozesse blockiert Ergebnis: Schlechte Prozessorauslastung Das System ist nur noch mit Seitentausch beschäftigt und kommt kaum noch zu produktiver Arbeit Bezeichnung: Thashing to thrash : strampeln, zappeln, wild um sich schlagen Blockiert (warten auf Seite) Bereit Rechnend SoSe 2017 P. Tröger / M. Werner 22 / 33 osg.informatik.tu-chemnitz.de

Thrashing-Kurve Prozessorauslastung Thrashing-Bereich Multiprogramminggrad Es muss verhindert werden, dass das System in den Überlastbereich gerät Mehr zu Analyse Vorlesung Betriebssysteme 2: Analyse und Modellierung SoSe 2017 P. Tröger / M. Werner 23 / 33 osg.informatik.tu-chemnitz.de

6.3 Konkrete Betriebssysteme 6.3 Konkrete Betriebssysteme Speicherverwaltung in Unix Frühere Unix-Systeme noch ohne virtuellen Speicher, aber mit Swapping Hauptspeicher als Betriebsmittel mit Verdrängung verwaltet Prozesse wurden komplett auf Platte ausgelagert, wenn kein Platz für Prozesserzeugung zur Verfügung stand oder eine dynamische Speicheranforderung nicht erfüllt werden konnte Kriterien für Auslagerung Zustand bevorzugt blockierte Prozesse auslagern Sonst: Priorität und Aufenthaltszeit im Hauptspeicher Priorität und Zeit seit der letzten Einlagerung werden addiert Prozess mit höchsten Wert wird ausgelagert Verwaltung mit First-Fit SoSe 2017 P. Tröger / M. Werner 24 / 33 osg.informatik.tu-chemnitz.de

6.3 Konkrete Betriebssysteme Speicherverwaltung in Windows Lokale Seitentauschstrategie Working Set: Menge aller Seiten, die ohne Seitenfehler zugreifbar sind Je nach Seitenfehlerrate und Gesamtzahl von Speicherrahmen werden Working Sets der Prozesse angepasst Wenig Seitenfehler verkleinern (working set trimming) Viele Seitenfehler erweitern (working set expansion) Systemweites Maximum wird beim Start berechnet (MmMaximumWorkingSetSize) Harte Grenzen: 2GB für X86, 7TB für IA64, 8TB für X86_64 Einlagerung und Auslagerung auf Kosten des den Seitenfehler verursachenden Prozesses (Moduswechsel, kein Kontextwechsel) SoSe 2017 P. Tröger / M. Werner 25 / 33 osg.informatik.tu-chemnitz.de

6.3 Konkrete Betriebssysteme Speicherverwaltung in Windows (Forts.) Ein Prozess startet immer mit einem leeren Working Set Seitenfehler beim Zugriff Füllt sich im Laufe der Prozessausführung Nur wirklich benötigte Daten / Code-Teile liegen im Hauptspeicher read-ahead-mechanismen: Mehr Seiten einlesen als eigentlich benötigt Bei Verkleinerung: LRU-Schema zum Ersetzen Der Kern hat sein eigenes System Working Set Kernel-Code und Daten (inkl. Treiber) können auch ausgelagert sein Beinhaltet globalen Cache des Dateisystems VirtualLock()-Systemruf: Seite ist garantiert im Hauptspeicher, wenn ein Thread aus dem Prozess ausgeführt wird MmProbeAndLockPages()-Systemruf: Seite ist immer im Hauptspeicher, kann nur von Kernel-Mode-Code gerufen werden SoSe 2017 P. Tröger / M. Werner 26 / 33 osg.informatik.tu-chemnitz.de

6.3 Konkrete Betriebssysteme Kachelverwaltung in Windows Ungenutzte Kacheln werden in verschiedenen globalen FIFO-Listen verwaltet Free Page List: Verfügbare Kacheln, nicht mit 0 gefüllt Modified Page List: Veränderte Seiten / Kacheln, aus dem Working Set entfernt Standby Page List: Unveränderte Seiten / Kacheln, aus dem Working Set entfernt Zero Page List: Verfügbare Kacheln, mit 0 gefüllt Bad Page List: Kachel hat Hardware-Test nicht bestanden Systemweite Optimierung durch Justierung der Working Sets einzelner Prozesse Neue Kacheln für Prozesse aus Free Page List oder Zero Page List, je nach Art der Nutzung Soft Page Fault: Kachel geht aus standby oder modified-liste wieder zurück in das Working Set, keine E/A-Operationen nötig Anmerkung: Mac OS X und ios arbeiten mit ähnlichen Listen SoSe 2017 P. Tröger / M. Werner 27 / 33 osg.informatik.tu-chemnitz.de

6.3 Konkrete Betriebssysteme Kachelverwaltung in Windows (Forts.) demand zero page faults page read from disk or kernel allocations Standby Page List Process Working Sets soft page faults modified page writer Free Page List zero page thread Zero Page List Bad Page List working set replacement Modified Page List Private pages at process exit SoSe 2017 P. Tröger / M. Werner 28 / 33 osg.informatik.tu-chemnitz.de

6.3 Konkrete Betriebssysteme Kachelverwaltung in Windows (Forts.) Durch globalen Cache für das Dateisystem sind viele Seitenfehler in Windows lediglich ein soft page fault Bei 8 oder mehr Einträgen in der Free Page List wird der Zero Page Thread aufgeweckt niedrigste Priorität, Kacheln mit 0 füllen Modified Page Writer Modified Page List zu lang, oder Free Page List zu kurz Thread wird geweckt Veränderte Seiten werden auf der Festplatte gespeichert Verschiebung in die Standby Page List, Einfügen in das Working Set ohne E/A-Operationen noch immer möglich Liste wird schrittweise geleert, je nach Auslastung des Systems Balance Set Manager Menge aller im Hauptspeicher befindlichen Seiten balance set Thread justiert die Größe der Working Sets aller Prozesse SoSe 2017 P. Tröger / M. Werner 29 / 33 osg.informatik.tu-chemnitz.de

6.3 Konkrete Betriebssysteme Kernel-Threads zur Speicherverwaltung in Windows Name Priorität Erklärung Process / Stack Swapper 23 Ein- und Auslagern von Seiten mit Stacks Dereference Segment Thread 18 Wachsen und Schrumpfen des globalen Cache und der Auslagerungsdatei Modified Page Writer 17 Veränderte Seiten auf der Festplatte speichern (modified page list) Mapped Page Writer 17 Veränderte Seiten auf der Festplatte speichern (mapped files) Working Set Manager 16 Strategieentscheidungen (Verkleinerung, Vergrößerung, Auslagerung) Zero Page Thread 0 Kacheln auf der free page list mit 0 füllen SoSe 2017 P. Tröger / M. Werner 30 / 33 osg.informatik.tu-chemnitz.de

6.3 Konkrete Betriebssysteme Arbeit mit Dateien Alle Betriebssysteme unterstützen memory-mapped files Teile einer Datei werden im logischen Adressraum eingeblendet Direkte Arbeit mit Zeigern und Variablen auf dem Dateiinhalt Lesen / Speichern der Datei übernimmt die Speicherverwaltung des Kerns Anwendung profitiert von allen Optimierungen der internen Speicherverwaltung des Betriebssystems (Caching, Seitenfehler-basierte Einlagerung, verzögertes Schreiben) Wird standardmäßig für Code eingesetzt Ziel kann statt Datei auch die Auslagerungsdatei bzw. -partition sein Gemeinsamer Speicher zwischen Prozessen realisierbar Beide blenden die gleiche Datei ein Windows: CreateFileMapping(), OpenFileMapping(), MapViewOfFile() Unix: mmap(), shmget(), shmctl() SoSe 2017 P. Tröger / M. Werner 31 / 33 osg.informatik.tu-chemnitz.de

6.3 Konkrete Betriebssysteme Warum RAM Optimierer keinen Sinn machen Before: Notepad Word Explorer System Available During: Avail. RAM Optimizer Notepad Word Explorer System After: Available SoSe 2017 P. Tröger / M. Werner 32 / 33 osg.informatik.tu-chemnitz.de

Literatur Betriebssysteme Virtueller Speicher 1 Literatur [Sta04] W. Stallings. Operating Systems: Internals and Design Principles. Prentice Hall, 2004, Chapter 7 und 8 [Tan08] A. Tanenbaum. Modern Operating Systems. Prentice Hall, 2008, Chapter 3 und 9/10 [SR96] David A. Solomon und Mark E. Russinovich. Inside Window 2000. Microsoft Press, 1996, Chapter 7 [Knu69] [PN77] Donald E. Knuth. Fundamental Algorithms. Bd. 1. The Art of Computer Programming. Addison-Wesley, 1969, S. 435 451 J. Peterson und T. A. Norman. Buddy systems. In: Communications of the ACM 6.20 (1977), S. 421 431 SoSe 2017 P. Tröger / M. Werner 33 / 33 osg.informatik.tu-chemnitz.de