Seitentauschstrategien in Theorie und Praxis für den Zentralspeicher

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme.
Sortieren I - Bubblesort -
5.5 Virtueller Speicher Wenn der reale Speicher sogar für einzelne Prozesse zu klein ist : Virtueller Speicher (virtual memory),  ist „beliebig“ groß,
Betriebssysteme.
Informatik Tagesprotokoll vom
Suche in Texten (Stringsuche )
der Universität Oldenburg
SAP R/3 - Speichermanagement
Gliederung Motivation / Grundlagen Sortierverfahren
Kapitel 8.1 Speicherverwaltung - Paging
Kapitel 8 Speicherverwaltung
Sortierverfahren Richard Göbel.
Java: Dynamische Datentypen
Sortierverfahren Richard Göbel.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 1. Quartal 2002.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
Studiengang Informatik FHDW
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Vorlesung 4: Memory Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin Wintersemester.
Technische Informatik II Wintersemester 2002/03
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Technische Informatik II Rechnerarchitektur und Betriebssysteme Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter.
Vorlesung 5 Interrupts Peter B. Ladkin
Weiteres Programm Studium des Breitendurchlaufs Hierzu
Random Heightmap on GPU
Matrix Multiplication on CUDA
Referat zum Thema „DLL“
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Duo- und Quad Prozessor-Architektur
Stand: November Anforderungen an Systemumgebung und Hardware Anmerkung Gollas, Schulamt Freising: Für unsere Schulen kommt eine Mehrplatz Installation.
Speicherverwaltung durch Swapping
Was ist ein Betriebssystem?
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Betriebssysteme allgemein
Aufbau eines von-Neumann- Rechners Marcel Waldvogel.
Effiziente Algorithmen
Java Garbage Collection Angelika Kusel, Überblick Was ist Garbage Collection? Vor- und Nachteile von GC GC-Algorithmen/Verfahren Java Garbage.
Basic Input/Output System
Einführung in die Programmiersprache C 4
Aufgabe 1 In einem Mikroprozessorsystem mit 32-bit-Datenzugriff auf den Hauptspeicher ist ein Daten-Cache vorhanden. Das Laden des Caches erfolgt in Blöcken.
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
Mark – Compact GC & Performancemessungen Bernhard Prügl,
Die Idee hinter Copying Garbage Collection (1) Aufteilung des Heaps in zwei Teile: To-Space und From-Space Nutzung eines Teiles durch das Programm Ist.
Studiengang Informatik FHDW
BMEVIEEA100 Grundlagen der Programmierung
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Parallelisierung für Multiprozessor-Maschinen
Das Traveling Salesman Problem (TSP)
Gruppe 2 MEMORY MANAGEMENT Jakob Dietschy Arnold Huber
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
2.3 Implementierung von Prozessen
WINDOWS 2003 Server. Standart Varianten für 32 Bit: Web Edition: Unterstützt Single(1)- oder Dual(2)-Prozessor-Systeme und bis zu 2 GB RAM 32-Bit Standard.
Jakob Dietschy Arnold Huber Karl Philip Schneider Lukas Unterberger Daniel Dötzl Gruppe 2 MEMORY MANAGEMENT.
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
Bs Der Speicherverwalter Speicherverwalter (memory manager) = im einfachsten Fall ein Systemprozess, der für die Umlagerung der Seiten (page.
LVM - Logical Volume Management unter Linux
Bs Segmentierung Adressraum besteht aus mehreren Segmenten (segments), die unabhängig voneinander manipulierbar sind. Segmentierungsstruktur ist.
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
Studiengang Informatik FHDW
1. Die rekursive Datenstruktur Liste 1
 Präsentation transkript:

Seitentauschstrategien in Theorie und Praxis für den Zentralspeicher Dr. Ulrich Margull © Dr. Ulrich Margull, 2004

Übersicht Virtuelle Speicherverwaltung Seitentauschstrategien Praxisbeispiele Zusammenfassung Bibliographie

Die Speicherhierarchie schneller kleiner Re- gisters Internal Cache Secondary Zentralspeicher Festplatte Backup-Medien (CD-ROM, Bandlaufwerke) 8:16 Seitentausch langsamer größer

Prinzip des virtueller Speichers addressiert Speicher Virtueller Speicher Seite 1 Seite 6 Seite 5 Seite 4 Seite 3 Seite 2 Seite 7 Seite 9 Seite 8 Seitenfehler! Seite 8 Memory Management Unit (MMU) 8:18 Seitenrahmen 1 Seitenrahmen 2 Seitenrahmen 3 Seitenrahmen 4 Physikalischer Speicher Festplatte Seite 8 Seitenrahmen 2 Prozess

Memory Management Unit (MMU) Umsetzung von logischer in physikalische Adresse (durch MMU) Um die Dale Carnegie Training® 'Begründung-Aufforderung-Nutzen-Formel' anzuwenden, begründen Sie die Aufforderung mit dem Nutzen für Ihr Publikum. Beziehen Sie das Interesse Ihres Publikums, deren Bedürfnisse und Vorlieben mit ein. Stellen Sie den Nutzen heraus, dies können Sie in Form von Statistiken, Demonstrationen, Attesten, Vorfällen oder Anschauungsmaterial erbringen. Logische Adresse Physikalische Adresse CPU p d f d f Physikalischer Speicher Seitentabelle

Virtueller Speicher Trennung von logischem und physikalischem Speicher Ein Prozess adressiert logische (=virtuellen) Speicheradressen Diese werden vom Betriebssystem in physikalische Adressen umgesetzt Vorteile: Ein einzelner Prozess kann einen größeren Speicher adressieren als physikalisch vorhanden ist Alle Prozesse erhalten den identischen (virtuellen), flachen Speicherbereich Schutz der Programme voneinander Gemeinsame Speicherbereiche und Dateien Effektive Prozesserzeugung Um die Dale Carnegie Training® 'Begründung-Aufforderung-Nutzen-Formel' anzuwenden, begründen Sie die Aufforderung mit dem Nutzen für Ihr Publikum. Beziehen Sie das Interesse Ihres Publikums, deren Bedürfnisse und Vorlieben mit ein. Stellen Sie den Nutzen heraus, dies können Sie in Form von Statistiken, Demonstrationen, Attesten, Vorfällen oder Anschauungsmaterial erbringen.

Virtuelle Speicherverwaltung Prozess arbeitet mit logischen Adressen, werden vom BS auf physikalische umgesetzt Virtueller Speicher wird in Seiten (pages) unterteilt Hardware-Unterstützung durch MMU Umsetzung von virtueller auf physikalische Adresse Seitenfehler (Page Fault) bei Zugriff auf ausgelagerte Seite R-Bit (Reference Bit): wird gesetzt, wenn Seite benutzt wurde M-Bit (Modified Bit): wird gesetzt, wenn Seite geändert wurde Seiten werden auf Anforderung vom BS bereitgestellt (Demand Paging) 8:22

Anforderungen an Prozessor Bei Seitenfehler: Unterbrechung der Prozessor-Anweisung -> muss später wiederholt werden! Problem: nicht immer möglich! Z.B. indiziertes Lesen: lade den Speicherinhalt, auf den R1 zeigt, an die Speicherstelle, auf die R2 zeigt; dabei wird R1 nach der Anweisung um eins erhöht, und R2 vor der Anweisung um eins erniedrigt: MOV (R1)+, -(R2) Die Anweisung enthält 3 Speicherzugriffe; nach einer Unterbrechung ist unklar, welche Register verändert wurden Mem-Copy Befehle, kopieren (oder verschieben) einen Speicherbereich, z.B. 256 Bytes auf einmal -> Page Fault kann jederzeit auftreten, wie kann die Anweisung wiederholt werden? Prozessor muss für virtuelles Speichermanagement geeignet sein! 8:22

Übersicht Virtuelle Speicherverwaltung Seitentauschstrategien Praxisbeispiele Zusammenfassung Bibliographie 8:23

Seitentauschstrategien Problem: wenn kein freier Seitenrahmen vorhanden ist, wie kann eine neue Seite eingelagert werden? Es muss zunächst eine andere entfernt werden! 8:23 Welche Seite kann zuerst entfernt werden? Ziel: möglichst wenig Seitenfehler Verschiedene Seitentauschstrategien Implementierung muss mit vorgegebener Hardware möglich sein

Seitentauschstrategien Ziel: möglichst wenig Seitenfehler Implementierung muss mit vorgegebener Hardware möglich sein Test einer Seitentauschstrategie, indem eine spezielle Seitenanforderungsfolge (reference string) durchlaufen und die Anzahl der Seitenfehler gemessen wird Beispiel: 0, 1, 2, 4, 0, 1, 3, 0, 1, 2, 4, 3 Seitenanforderungsfolgen können zufällig mit vorgegebenen Verteilungen erzeugt werden, oder von echten Programmläufen gewonnen werden Um die Dale Carnegie Training® 'Begründung-Aufforderung-Nutzen-Formel' anzuwenden, begründen Sie die Aufforderung mit dem Nutzen für Ihr Publikum. Beziehen Sie das Interesse Ihres Publikums, deren Bedürfnisse und Vorlieben mit ein. Stellen Sie den Nutzen heraus, dies können Sie in Form von Statistiken, Demonstrationen, Attesten, Vorfällen oder Anschauungsmaterial erbringen.

Optimale Strategie Optimale Strategie: Suche die Seite, die am spätesten wieder benutzt wird Im Allgemeinen unmöglich zu implementieren, da keine Vorhersage in die Zukunft möglich ist Ist jedoch wichtig als Vergleichsmöglichkeit für andere Seitentauschstrategien 8:24

First-In First-Out (FIFO) Die Seite wird entfernt, die als erste geladen wurde Einfach zu implementieren Nur minimale Hardware-Unterstützung nötig Anfällig für Belady‘s Anomalie: in seltenen Fällen kommt es bei mehr Seitenrahmen zu einer Erhöhung der Seitenfehler (Belady et.al., 1969) Wurde in den ersten VAX/VMS Rechnern verwendet[2] 8:26

Belady‘s Anomalie Seitenanforderungsfolge:0,1,2,3,0,1,4,0,1,2,3,4 Bei FIFO mit Tiefe 3 bzw. 4 und 5 Seitenrahmen sowie 12 Seitenanforderungen kommt die Anomalie genau zweimal vor (zweiter Fall: 012401301243) 3 4 2 1 4 3 10 Seitenfehler (Optimal: 6) 1 2 2 1 3 9 Seitenfehler (Optimal: 7)

Least-Recently Used (LRU) Suche die Seite, die am längsten unbenutzt war Kommt der optimalen Strategie nahe, ist jedoch sehr aufwändig zu implementieren LRU Simulationen in Software: Verwendung von Zähler Stack Algorithmen Alle LRU-Algorithmen sind immun gegen Belady‘s Anomalie 8:28

LRU Näherung: Second Change (SC) Wie FIFO, mit folgender Änderung: Wurde die zu ersetzende Seite referenziert (R-Bit gesetzt), so wird sie nicht entfernt Die Seite wird wie eine neue Seite an den Anfang der FIFO-Warteschlange gesetzt Das R-Bit wird gelöscht. SC sucht die älteste, nicht-benutzte Seite; falls alle Seiten benutzt werden, so ist SC identisch mit FIFO Wird auch Clock genannt 8:30

Second Chance: Beispiel R=0 R=0 R=1 Second Chance: Beispiel X Alle Seiten werden in einer kreisförmigen Liste angeordnet; ein Zeiger zeigt jeweils auf die älteste Seite 8:31 Tritt ein Seitenfehler auf, so wird die älteste Seite ersetzt (auf die der Zeiger zeigt), falls sie nicht benutzt wurde (R-Bit gleich 0). Andernfalls wird das R-Bit gelöscht und der Zeiger solange weiter bewegt, bis eine Seite mit R=0 gefunden wird. Variationen mit mehreren Zeigern möglich (z.B. two-handed SC mit zwei Zeigern) Wurde in Unix verwendet (4BSD, System V) [1]

Verbesserter (Enhanced) Second Change Idee: unveränderte Seite ist schneller zu ersetzen als geänderte Die Seiten werden in 4 Klassen eingeteilt: Klasse 0: nicht referenziert, nicht modifiziert (R=0, M=0) Klasse 1: nicht referenziert, modifiziert (R=0, M=1) Klasse 2: referenziert, nicht modifiziert (R=1, M=0) Klasse 3: referenziert, modifiziert (R=1, M=1) Es wird eine beliebige Seite aus der niedrigsten, nicht-leeren Klasse genommen Wird im Macintosh VMM verwendet (nach [2]) 8:34

LRU Näherung: Zählerbasierte Tauschstrategien LFU (Least Frequently Used): Für jede Seite wird ein Zähler mitgeführt; wurde die Seite benutzt (d.h. R-Bit ist 1), so wird der Zähler erhöht. Die Seite mit dem niedrigsten Zähler wird entfernt Problem: LFU vergisst nicht: unbenutzte Seiten, die vor langer Zeit mal stark genutzt wurden, verbleiben im Speicher Altern (Aging): Bei unbenutzten Seiten wird der Zähler wird vermindert: Exponentielles Altern: z = z >> 1; if( r_bit > 0 ) z += 128; r_bit = 0; 8:35 Lineares Altern: if( r_bit > 0 ) z += 3; else if( z>0 ) z--; r_bit = 0;

Working Set Model Die meisten Prozesse nutzen nicht den gesamten virtuellen Speicher, sondern nur einen Teil davon. Die Menge der Seiten, die aktuell genutzt werden, heißt „Working Set“. Passt das Working Set nicht in den verfügbaren Speicher, so erzeugt der Prozess viele Seitenfehler: es kommt zum Seitenflattern (Thrashing). Das Working Set ändert sich im Laufe der Zeit und muss entsprechend angepasst werden 8:36

Working Set Model: Beispiel Working Set wird dem aktuellen Bedarf des Prozesses angepasst 8:36

Weitere Aspekte Virtuellem Speichermanagements Pool freier Seiten Lokale versus globale Verteilungsstrategien Kontrolle der Auslastung (Vermeidung von Seitenflattern) Variable Seitengröße Von mehreren Prozessen genutzte Seiten (Memory Mapped Files, Shared Pages) Copy-on-write XXX

Übersicht Virtuelle Speicherverwaltung Seitentauschstrategien Praxisbeispiele Zusammenfassung Bibliographie 8:37

Windows 2000/XP: VMM Pure Demand Paging, d.h. alle Seiten werden durch Seitenfehler geladen Berücksichtigung des Working Sets: jeder Prozess bekommt Speicher zugeteilt (in Grenzen Min, Max) Die Grenzen werden dem aktuellen Bedarf angepasst Mischung aus lokaler und globaler Zuteilung Großer Vorrat an „freien“ Seiten Mehrstufiger Seitenpuffer (geänderte, Standby, freie und gelöschte Seiten) 8:37

Windows 2000/XP: Algorithmus zum Entfernen von Seiten (Intel) Seitendieb (pagedaemon) startet zyklisch / bei Bedarf Alle Prozesse werden in bestimmter Reihenfolge untersucht Einprozessor-System: LRU Variante Zähler für unbenutzte Seiten Wird erhöht falls R-Bit=0 Wird auf null gesetzt, falls R-Bit=1 Seiten mit höchstem Zähler werden entfernt Falls nötig, mehrere Durchläufe (zunehmend aggressiver) Multi-Prozessor: nur FIFO 8:38

Windows 2000 Mehrstufiger Seitenpuffer (nach [1]): Um die Dale Carnegie Training® 'Begründung-Aufforderung-Nutzen-Formel' anzuwenden, begründen Sie die Aufforderung mit dem Nutzen für Ihr Publikum. Beziehen Sie das Interesse Ihres Publikums, deren Bedürfnisse und Vorlieben mit ein. Stellen Sie den Nutzen heraus, dies können Sie in Form von Statistiken, Demonstrationen, Attesten, Vorfällen oder Anschauungsmaterial erbringen.

Windows XP Pure Demand Paging, d.h. alle Seiten werden durch Seitenfehler geladen Vorrat an freien, gelöschten Seiten Working Set: jeder Prozess bekommt Speicher zugeteilt (in Grenzen, Min. und Max.) -> Lokale Zuteilung Das Working Set wird jedoch an den aktuellen Bedarf des Prozesses angepasst -> Globale Zuteilung Modifizierter Clock-Algorithmus Alter der Seiten wird berücksichtigt Falls nötig, jeweils mehrere zunehmend aggressivere Durchläufe Um die Dale Carnegie Training® 'Begründung-Aufforderung-Nutzen-Formel' anzuwenden, begründen Sie die Aufforderung mit dem Nutzen für Ihr Publikum. Beziehen Sie das Interesse Ihres Publikums, deren Bedürfnisse und Vorlieben mit ein. Stellen Sie den Nutzen heraus, dies können Sie in Form von Statistiken, Demonstrationen, Attesten, Vorfällen oder Anschauungsmaterial erbringen.

Unix allgemein Seitentausch durch Seitendieb (page daemon), z.B. alle 250 ms Großer Vorat an freien Seiten (typisch ¼ des Zentralspeichers), mit Seitenpufferung Globaler Algorithmus: keine Berücksichtigung des Working Sets Modifizierte Variante des Clock-Algorithmus (mit zwei Zeigern) 4BSD: Two-handed Clock System V: Seiten werden nur entfernt, wenn sie n-mal hintereinander nicht genutzt wurden Um die Dale Carnegie Training® 'Begründung-Aufforderung-Nutzen-Formel' anzuwenden, begründen Sie die Aufforderung mit dem Nutzen für Ihr Publikum. Beziehen Sie das Interesse Ihres Publikums, deren Bedürfnisse und Vorlieben mit ein. Stellen Sie den Nutzen heraus, dies können Sie in Form von Statistiken, Demonstrationen, Attesten, Vorfällen oder Anschauungsmaterial erbringen.

Linux Seitendieb kswapd, läuft einmal pro Sekunde (oder auf Anforderung, wenn Speicher voll ist) Großer Vorrat an freien Seiten Linux 2.2: Kein Prepaging, keine Berücksichtigung des Working Sets Seiten werden in mehreren Durchläufen entfernt (Variante von Second Chance) Linux 2.4: Second Chance mit mehreren Durchläufen LFU: Zähler mit Altern (jüngere Seiten haben hohen Wert) 8:39

Zusammenfassung Seitentauschstrategien Optimale Strategie nicht umsetzbar FIFO: einfach, nur minimale Hardware-Anforderungen, aber Belady Anomalie LRU: gut, schwer zu implementieren LRU Näherungen: Second Chance, LFU, Aging, u.a. Berücksichtigung des Working-Sets Aufteilung des Speichers auf die verschiedenen Prozesse Seitentauschstrategie sind ein wichtige Teil der komplexen virtuellen Speicherverwaltung 8:40

Bibliographie [1] „Modern Operating Systems“, 2nd Edition, Andrew Tanenbaum, Prentice Hall, 2001 (deutsch: „Moderne Betriebssysteme“ im Verlag Pearson Studium) [2] „Operating System Concepts“, 6th Edition, A. Silberschatz et.al, Wiley, 2003 [3] „Vorlesung Betriebssysteme“, geschrieben von Dipl.Inf (FH) Eyke Langhans, überarbeitet von Prof. Dr. Jobst, SS1998 bis SS2001 [4] Informationen zu Linux VM unter www.linux-mm.org, insbesondere „Too little, too slow“ von Rik van Riel

Appendix Um die Dale Carnegie Training® 'Begründung-Aufforderung-Nutzen-Formel' anzuwenden, begründen Sie die Aufforderung mit dem Nutzen für Ihr Publikum. Beziehen Sie das Interesse Ihres Publikums, deren Bedürfnisse und Vorlieben mit ein. Stellen Sie den Nutzen heraus, dies können Sie in Form von Statistiken, Demonstrationen, Attesten, Vorfällen oder Anschauungsmaterial erbringen.

Belady‘s Anomalie Bei FIFO mit Tiefe 3 bzw. 4 und 5 Seitenrahmen sowie 12 Seitenanforderungen kommt die Anomalie genau zweimal vor (zweiter Fall: 012401301243)

Nebeneffekte des Paging Paging kann zu Verzögerungen des Programms führen -> ungeeignet für Echtzeitsysteme Paging ist transparent für den Benutzer. Aber: Nebeneffekte sind möglich! Beispiel: Seitengröße 4kByte; Programm benötigt Feld mit 1024 mal 1024 Integer-Zahlen int i, j, a[1024][1024]; // schnelle Schleife: for(i=0; i<1024; i++) for(j=0; j<1024; j++) a[i][j] = 0; Links 1024 Seitenanforderungen, rechts 1024*1024 ! 8:35 // langsame Schleife: for(i=0; i<1024; i++) for(j=0; j<1024; j++) a[j][i] = 0;