Linux Paging Caching und Swapping 1 Vortragsstruktur Paging






















































- Slides: 54
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
Prozeß 1 Prozeß 2 Virtuelle Speicherseite eines Prozesses Physische Speicherseite die von mehreren Prozessen gemeinsam genutzt wird 1
Prozeß 1 Prozeß 2 Page Table Virtuelle Speicherseite eines Prozesses Physische Speicherseite die von mehreren Prozessen gemeinsam genutzt wird Page Table 1
Page-Größe bei ix 86 Systemen beträgt 4 Kilobyte, also 0 x 1000 B. Virtuelle Adresse 0 x 00484456 Physische Adresse 0 x 00089456 Prozessor extrahiert Offset und VPFN 0 x 484 Page Offset 0 x 456 Prozessor greift auf Page Table 0 x 484 zu Prozessor generiert physische Adresse und greift darauf zu PFN 0 x 89 Page Offset 0 x 456 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 „Valid“ Flag „Page Dirty“ Flag 1
Ein einzelner Page Table Eintrag eines Prozesses „Page Dirty“ Flag & & 1
Ein einzelner Page Table Eintrag eines Prozesses „Page Dirty“ Flag & & 1
Ein einzelner Page Table Eintrag eines Prozesses „Valid“ Flag 1
PGD Physische Seite PGD: „Page Global Directory“. Vom Kernel initialisiert. Weist auf den ersten Page Table Level. 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
„mem_map_t“ oder auch „Page“ Struktur: Anzahl der Benutzer, die Seite benutzen Alter der Seite. Entscheidet, ob die Seite verworfen bzw. ausgelagert wird, wenn wieder Speicherplatz benötigt wird. Physische PFN 1
free_area Vektor Freie Speicherseite im Hauptspeicher (nicht alloziert) 1
free_area Vektor mem_map Struktur mem_map_t Freie Speicherseite im Hauptspeicher (nicht alloziert) 1
free_area Vektor mem_map Struktur map Bitmaps mem_map_t Freie Speicherseite im Hauptspeicher (nicht alloziert) 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
mm_struct vm_area_struct & Virtueller Speicher des Prozesses 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
Block wird geladen Geräte-ID, Blocknummer 1
Pointer auf mem_map_t Datei, Datenoffset (single-page read ahead) 1
1
1
1
1
1
Exception TLB miss neuer TLB 1
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
Prozess mit Seiten im physischen Speicher „Working Set“ eines Prozesses 1
mem_map_t Prozess mit Seiten im physischen Speicher „Working Set“ eines Prozesses 1
mem_map_t Prozess mit Seiten im physischen Speicher „Least Recently Used“ (LRU) Technik zur Bestimmung des Seitenalters „Working Set“ eines Prozesses 1
LRU im Detail: 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
nein 1
nein 1
nein 1
nein ja nein 1
nein ja nein 1
ja nein 1
ja nein 1
ja nein 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_map_t Physische 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 1
3. ) Speicherseiten auslagern (Swap File) Darf Prozeß geswappt werden? 1
3. ) Speicherseiten auslagern (Swap File) Darf Prozeß geswappt werden? Dürfen Seiten geswappt werden? (nicht locked / shared) 1
3. ) Speicherseiten auslagern (Swap File) 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) 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
Vortragsende „Linux Paging, Caching und Swapping“ 1