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