1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.

Slides:



Advertisements
Ähnliche Präsentationen
Seitentauschstrategien in Theorie und Praxis für den Zentralspeicher
Advertisements

Ext2. Geschichte Minixerhebliche Beschränkungen extfs ext2erstmals aufhebung aller drängenden Beschränkungen ext3erweiterung um Journaling.
4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme.
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Beim Start eines Prozesses in Windows NT, 2000 wird a der Programmtext aus der exe-Datei ab der dort angegebenen Adresse gespeichert.
C Tutorium – Semaphoren –
FH-Hof Der B-Baum Richard Göbel. FH-Hof Wahl des Verzweigungsgrad Verzweigungsgrad kann größer als 2 sein v Nachfolger für einen Knoten v-1 Werte in einem.
5.5 Virtueller Speicher Wenn der reale Speicher sogar für einzelne Prozesse zu klein ist : Virtueller Speicher (virtual memory),  ist „beliebig“ groß,
Indexed Sequential Access Method
Institut MD Universität Rostock Real-Time Linux Szenario –Board, liest (sampled) analoge Daten –produziert 8 Bit Ergebnis und gibt dieses alle 100 ms aus.
FU Berlin SS 2003 Klaus-Peter Löhr
SAP R/3 - Speichermanagement
Kapitel 8 Speicherverwaltung
Effizienz: Indexstrukturen
Scripting Gems 7 Von Marcel Schotten Kurs: Softwaretechnologie II SS2013 Dozent: Prof. Dr. Thaller.
1 Named Pipes alias FIFO Haben einen Eintrag im Dateisystem und sind somit durch Zugriffsrechte identifizierbar Ermöglichen die Kommunikation zwischen.
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 1. Quartal 2002.
Einführung Definitionen
DbjFileManager Paul Fruntzek Michael Stanek. Überblick Unterste Ebene im Schichtenmodell Schnittstelle zum BS (Low-Level) Aufgabenbereich: Persistente.
Medizinische Statistik und Informationsverarbeitung Goldschmidt, Quade, Baur Institut für Medizinische Statistik, Dokumentation und Datenverarbeitung.
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 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Cachingverfahren und Proxies Teil 1
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Manfred Thaller, Universität zu Köln Köln 27. Januar 2009
Referat zum Thema „DLL“
Projektpräsentation Lukas Büchele Alfred Olschnögger
So arbeitet ein PC.
Speicherverwaltung durch Swapping
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Betriebssysteme allgemein
Speicher- verwaltung.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Systeme 1 Kapitel 9.1 Betriebssysteme auf aktueller Hardware
VP1 VP2 VP3 PP1.1 PP2.1 PP2.2 PP1.2 PP2.3 PP1.3 MMU VP1 VP2 VP3 PP1 PP4 PP6 MMU-Konfiguration für Prozess P1 Virtual Memory von P1 Physical Memory.
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Di., 8.30 – Uhr Ort: Hörsaal 5.01, Institut für Experimentalphysik, Universitätsplatz.
Computerorientierte Physik VORLESUNG
Wer macht was beim Einschalten des Rechners?
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.
Wirtschaftsinformatik Die Hardware des PC im Überblick
Thread Synchronisation in JAVA
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
Bs Gemeinsame Datensegmente am Beispiel Solaris [Beachte: Unix/Linux setzen keine Hardware-Segmentierung voraus und sprechen daher statt von.
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.
Speicher- verwaltung.
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 19 Version 1.0a Programme - Zusatzsoftware Oracle: –Forms –Reports –Designer –Jdeveloper –APEX (Application Express)
Studiengang Informatik FHDW
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Gruppe 2 MEMORY MANAGEMENT Jakob Dietschy Arnold Huber
Arbeitsspeicher Eine Präsentation von - Namen wurden entfernt -
Ein Vortrag von Marcel Siegert und Philipp Hoffmann
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
Studiengang Informatik FHDW
Recovery    AIFB SS (1/6) Durchführung der Recovery-Maßnahmen(1/6) Transaktions-Fehler (TF) T1 T2 T3 Zeitt Transaktion T2 wird vom.
KA – Rechnerarchitektur II ____________________________________________________________________________________________ ____________________________________________________________________________________________.
Jakob Dietschy Arnold Huber Karl Philip Schneider Lukas Unterberger Daniel Dötzl Gruppe 2 MEMORY MANAGEMENT.
NE2000: Hardware und Design eines Treibers 1 AKBPII: Abschlusspräsentation NE2000: Hardware und Design eines prototypischen Treibers bearbeitet.
Bs Der Speicherverwalter Speicherverwalter (memory manager) = im einfachsten Fall ein Systemprozess, der für die Umlagerung der Seiten (page.
Betriebssysteme Übung 2. Tutorium „System Calls & Multiprogramming“
4.4 Speicherarchitektur E/AGeräte E/A-Einheiten Leitwerk Prozessor
Bs Segmentierung Adressraum besteht aus mehreren Segmenten (segments), die unabhängig voneinander manipulierbar sind. Segmentierungsstruktur ist.
C Tutorium – Shared Memory – Knut Stolze. 2 Shared Memory Ein Speicherbereich, auf den mehrere Prozesse Zugriff haben – Also kein privater Speicher –
RAM (Random Access Memory)
RAM (Random Access Memory)
Kap. 4 Speicher- verwaltung Version vom
Studiengang Informatik FHDW
Einführung Definitionen
Einführung Definitionen
Das Betriebssystem Linux
 Präsentation transkript:

1 Linux Paging, Caching und Swapping

1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation –Memory Mapping & Demand Paging Caching –Die verschiedenen Caches Swapping –Welche Pages eines Prozesses werden ausgelagert –Der Kernel Swap Demon (kswapd) –Freimachen von Speicherseiten

1 VPFN 3 VPFN 2 VPFN 1 VPFN 0 VPFN 2 VPFN 1 VPFN 0 PFN 7 PFN 6 PFN 5 PFN 4 PFN 3 PFN 2 PFN 1 PFN 0 Prozeß 1Prozeß 2 Virtuelle Speicherseite eines Prozesses Physische Speicherseite eines Prozesses Physische Speicherseite die von mehreren Prozessen gemeinsam genutzt wird

1 VPFN 3 VPFN 2 VPFN 1 VPFN 0 VPFN 2 VPFN 1 VPFN 0 PFN 7 PFN 6 PFN 5 PFN 4 PFN 3 PFN 2 PFN 1 PFN 0 Prozeß 1Prozeß 2 Page Table Virtuelle Speicherseite eines Prozesses Physische Speicherseite eines Prozesses Physische Speicherseite die von mehreren Prozessen gemeinsam genutzt wird Page Table

1 VirtuellPhysisch Virtuelle Adresse 0x Page-Größe bei ix86 Systemen beträgt 4 Kilobyte, also 0x1000 B. VPFN 0x484 Page Offset 0x456 PFN 0x89 Page Offset 0x456 Physische Adresse 0x Prozessor extrahiert Offset und VPFN Prozessor greift auf Page Table 0x484 zu Prozessor generiert physische Adresse und greift darauf zu

1 Vortragsstruktur Paging –Das Virtuelle Speichermodell – Die Page Table im Detail –Page Allocation und Page Deallocation –Memory Mapping & Demand Paging Caching –Die verschiedenen Caches Swapping –Welche Pages eines Prozesses werden ausgelagert –Der Kernel Swap Demon (kswapd) –Freimachen von Speicherseiten

1 Ein einzelner Page Table Eintrag eines Prozesses VZugriffsrechteDPFN Valid Flag Page Dirty Flag

1 Ein einzelner Page Table Eintrag eines Prozesses VZugriffsrechteDPFN Valid Flag Page Dirty Flag Valid gesetzt Valid gelöschtPFN gelöscht PFN gesetztSeite vorhanden Seite ungültig (Page fault) & &

1 Ein einzelner Page Table Eintrag eines Prozesses VZugriffsrechteDPFN Valid Flag Page Dirty Flag Valid gesetztPFN gelöscht Valid gelöschtPFN gesetzt Valid gesetzt Valid gelöschtPFN gelöscht PFN gesetztSeite vorhanden Seite ungültig (Page fault) Page fault: Demand Paging Page fault: Seite im Swap & & & &

1 Ein einzelner Page Table Eintrag eines Prozesses VZugriffsrechteDPFN Valid Flag Page Dirty Flag Eine neue Page wird geladen Page wird geändert (beschrieben) Page wird auf Datenträger ausgelagert in den Swap Bereich Page wird dringend für einen anderen Prozeß benötigt Seite wird verworfen Page wird nicht beschrieben

1 Level 1Level 2Level 3Byte in Seite PFN Adresse PGD PGD: Page Global Directory.Vom Kernel initialisiert. Weist auf den ersten Page Table Level. Physische Seite

1 Vortragsstruktur Paging –Das Virtuelle Speichermodell –Die Page Table im Detail – Page Allocation und Page Deallocation –Memory Mapping & Demand Paging Caching –Die verschiedenen Caches Swapping –Welche Pages eines Prozesses werden ausgelagert –Der Kernel Swap Demon (kswapd) –Freimachen von Speicherseiten

1 count age map_nr mem_map_t oder auch Page Struktur: Anzahl der Benutzer, die die Seite benutzen Alter der Seite. Entscheidet, ob die Seite verworfen bzw. ausgelagert wird, wenn wieder Speicherplatz benötigt wird. Physische PFN

PFN Freie Speicherseite im Hauptspeicher (nicht alloziert) free_area Vektor

PFN Freie Speicherseite im Hauptspeicher (nicht alloziert) mem_map Struktur free_area Vektor mem_map_t

PFN Freie Speicherseite im Hauptspeicher (nicht alloziert) mem_map Struktur free_area Vektor mem_map_t map Bitmaps

1 Vortragsstruktur Paging –Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation – Memory Mapping und Demand Paging Caching –Die verschiedenen Caches Swapping –Welche Pages eines Prozesses werden ausgelagert –Der Kernel Swap Demon (kswapd) –Freimachen von Speicherseiten

1 vm_ops vm_end vm_start mm_structvm_area_struct z.B. Code z.B. initialisierte Daten (Variablen).. Virtueller Speicher des Prozesses Valid gesetztPFN gelöscht Demand Paging &

1 Vortragsstruktur Paging –Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation –Memory Mapping & Demand Paging Caching – Die verschiedenen Caches Swapping –Welche Pages eines Prozesses werden ausgelagert –Der Kernel Swap Demon (kswapd) –Freimachen von Speicherseiten

1 Buffer Cache Page Cache Swap Cache Hardware CachesTLB (Translation Look-aside Buffers)

1 Buffer Cache Block-Gerätetreiber 2 kB Geräte-ID, Blocknummer Hardware: Blockgerät (Festplatte) Block wird geladen

1 Page Cache Page fault handling code Page Datei, Datenoffset Festplatte Pointer auf mem_map_t (single-page read ahead) page_hash_table mem_map_t

1 Swap Cache Seite wird aus Swap File gelesen Swap Cache erzeugt Page Table Entry (Swap File, Offset)

1 Swap Cache Seite wird aus Swap File gelesen Page wird geändert (beschrieben) Swap Cache erzeugt Page Table Entry (Swap File, Offset) Page wird nicht beschrieben Swap Cache löscht den Page Table Entry

1 Swap Cache Seite wird aus Swap File gelesen Page wird geändert (beschrieben) Swap Cache erzeugt Page Table Entry (Swap File, Offset) Page wird nicht beschrieben Swap Cache löscht den Page Table Entry Seite soll ins Swap File ausgelagert werden

1 Swap Cache Seite wird aus Swap File gelesen Page wird geändert (beschrieben) Page wird in Swap File geschrieben Swap Cache erzeugt Page Table Entry (Swap File, Offset) Seite wird verworfen. Grosse Zeitersparnis Page wird nicht beschrieben Swap Cache löscht den Page Table Entry Seite nicht im CacheSeite im Cache Seite soll ins Swap File ausgelagert werden

1 Hardware CachesTLB (Translation Look-aside Buffers) CPU (Prozessor) TLB OS (Linux)

1 Hardware CachesTLB (Translation Look-aside Buffers) CPU (Prozessor) TLB OS (Linux) Exception TLB miss neuer TLB

1 Hardware CachesTLB (Translation Look-aside Buffers) CPU (Prozessor) TLB OS (Linux) exception bearbeitet

1 Vortragsstruktur Paging –Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation –Memory Mapping & Demand Paging Caching –Die verschiedenen Caches Swapping – Welche Pages eines Prozesses werden ausgelagert –Der Kernel Swap Demon (kswapd) –Freimachen von Speicherseiten

1 PFN 3 PFN 2 PFN 1 PFN 0 PFN 7 PFN 6 PFN 5 PFN 4 Working Set eines Prozesses Prozess mit Seiten im physischen Speicher

1 PFN 3 PFN 2 PFN 1 PFN 0 PFN 7 PFN 6 PFN 5 PFN 4 Working Set eines Prozesses count age map_nr count age map_nr mem_map_t Prozess mit Seiten im physischen Speicher

1 PFN 3 PFN 2 PFN 1 PFN 0 PFN 7 PFN 6 PFN 5 PFN 4 Working Set eines Prozesses Least Recently Used (LRU) Technik zur Bestimmung des Seitenalters count age map_nr count age map_nr mem_map_t Linux Prozess mit Seiten im physischen Speicher

1 LRU im Detail: Seite wird alloziertDas Alter wird gesetzt auf: age = 3 Seitenzugriff Das Alter wird um 3 eröht, Maximalwert ist 20 kswapd prüft das Alter Das Alter wird um 1 reduziert. Wenn 0 erreicht wird, gilt die Seite als alt.

1 Vortragsstruktur Paging –Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation –Memory Mapping & Demand Paging Caching –Die verschiedenen Caches Swapping –Welche Pages eines Prozesses werden ausgelagert – Der Kernel Swap Demon (kswapd) –Freimachen von Speicherseiten

1 Systeminitialisierung kswapd wird geladen Kernel Swap Timer wird initialisiert free_pages_high und free_pages_low werden initialisiert

1 Systeminitialisierung kswapd wird geladen Kernel Swap Timer wird initialisiert free_pages_low und free_pages_high werden initialisiert Anzahl freier Seiten unter free_pages_low? nein

1 Systeminitialisierung kswapd wird geladen Kernel Swap Timer wird initialisiert free_pages_low und free_pages_high werden initialisiert Anzahl freier Seiten unter free_pages_low? Anzahl freier Seiten unter free_pages_high? nein

1 Systeminitialisierung kswapd wird geladen Kernel Swap Timer wird initialisiert free_pages_low und free_pages_high werden initialisiert Anzahl freier Seiten unter free_pages_low? Anzahl freier Seiten unter free_pages_high? nein Dont Panic

1 Systeminitialisierung kswapd wird geladen Kernel Swap Timer wird initialisiert free_pages_low und free_pages_high werden initialisiert Anzahl freier Seiten unter free_pages_low? Anzahl freier Seiten unter free_pages_high? nein ja Dont Panic

1 Systeminitialisierung kswapd wird geladen Kernel Swap Timer wird initialisiert free_pages_low und free_pages_high werden initialisiert Anzahl freier Seiten unter free_pages_low? Anzahl freier Seiten unter free_pages_high? nein ja Dont Panic3 Seiten freimachen

1 Systeminitialisierung kswapd wird geladen Kernel Swap Timer wird initialisiert free_pages_low und free_pages_high werden initialisiert Anzahl freier Seiten unter free_pages_low? Anzahl freier Seiten unter free_pages_high? nein ja Dont Panic3 Seiten freimachen ja

1 Systeminitialisierung kswapd wird geladen Kernel Swap Timer wird initialisiert free_pages_low und free_pages_high werden initialisiert Anzahl freier Seiten unter free_pages_low? Anzahl freier Seiten unter free_pages_high? nein ja Dont Panic3 Seiten freimachen 6 Seiten freimachen Nur halbe Zeitspanne schlafen

1 Systeminitialisierung kswapd wird geladen Kernel Swap Timer wird initialisiert free_pages_low und free_pages_high werden initialisiert Anzahl freier Seiten unter free_pages_low? Anzahl freier Seiten unter free_pages_high? nein ja Dont Panic3 Seiten freimachen 6 Seiten freimachen Nur halbe Zeitspanne schlafen Zuletzt benutzte Methode wiederbenutzen: 1.) Page- und Buffer-Cache Seiten reduzieren (z.B. Memory Mapped Files, Festplattendaten) 2.) System V Shared Memory Seiten auslagern (Swap File) 3.) Speicherseiten auslagern (Swap File)

1 Vortragsstruktur Paging –Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation –Memory Mapping & Demand Paging Caching –Die verschiedenen Caches Swapping –Welche Pages eines Prozesses werden ausgelagert –Der Kernel Swap Demon (kswapd) – Freimachen von Speicherseiten

1 1.) Page- und Buffer-Cache Seiten reduzieren (z.B. Memory Mapped Files, Festplattendaten) Kein Swapping (Datenträgerzugriff) nötig! mem_mapmem_map_tPhysische Seiten clock Algorithmus

1 2.) System V Shared Memory Seiten auslagern (Swap File) Physische Seiten clock Algorithmus Prozeß A Prozeß B Prozeß C

1 2.) System V Shared Memory Seiten auslagern (Swap File) Physische Seiten clock Algorithmus Page Tables Prozeß A Prozeß B Prozeß C

1 2.) System V Shared Memory Seiten auslagern (Swap File) Physische Seiten clock Algorithmus Page Tables Prozeß A Prozeß B Prozeß C Page Table Eintrag invalid setzen PFN auf Swapposition setzen (Datei, Offset) User Count für die Seite um 1 reduzieren (mem_map_t) Wenn User Count = 0, dann Seite swappen

1 3.) Speicherseiten auslagern (Swap File) kswapd Prozeß AProzeß BProzeß C Darf Prozeß geswappt werden?

1 3.) Speicherseiten auslagern (Swap File) kswapd Prozeß AProzeß BProzeß C Darf Prozeß geswappt werden? Dürfen Seiten geswappt werden? (nicht locked / shared)

1 3.) Speicherseiten auslagern (Swap File) kswapd Prozeß AProzeß BProzeß C Darf Prozeß geswappt werden? Dürfen Seiten geswappt werden? (nicht locked / shared) Muß eine Seite geswappt werden oder kann man sie einfach verwerfen? (Können die Informationen anders wiederhergestellt werden?)

1 3.) Speicherseiten auslagern (Swap File) kswapd Prozeß AProzeß BProzeß C Darf Prozeß geswappt werden? Dürfen Seiten geswappt werden? (nicht locked / shared) Muß eine Seite geswappt werden oder kann man sie einfach verwerfen? (Können die Informationen anders wiederhergestellt werden?) Seite verwerfenEinige wenige Seiten wählen Seiten ins Swap File auslagern

1 Vortragsende Linux Paging, Caching und Swapping