Linux Paging Caching und Swapping 1 Vortragsstruktur Paging

  • Slides: 54
Download presentation
Linux Paging, Caching und Swapping 1

Linux Paging, Caching und Swapping 1

Vortragsstruktur • Paging – Das Virtuelle Speichermodell – Die Page Table im Detail –

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

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

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

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 –

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 „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 „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

Ein einzelner Page Table Eintrag eines Prozesses „Valid“ Flag 1

PGD Physische Seite PGD: „Page Global Directory“. Vom Kernel initialisiert. Weist auf den ersten

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 –

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.

„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 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 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

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 –

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

mm_struct vm_area_struct & Virtueller Speicher des Prozesses 1

Vortragsstruktur • Paging – – Das Virtuelle Speichermodell Die Page Table im Detail Page

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

1

Block wird geladen Geräte-ID, Blocknummer 1

Block wird geladen Geräte-ID, Blocknummer 1

Pointer auf mem_map_t Datei, Datenoffset (single-page read ahead) 1

Pointer auf mem_map_t Datei, Datenoffset (single-page read ahead) 1

1

1

1

1

1

1

1

1

1

1

Exception TLB miss neuer TLB 1

Exception TLB miss neuer TLB 1

exception bearbeitet 1

exception bearbeitet 1

Vortragsstruktur • Paging – – Das Virtuelle Speichermodell Die Page Table im Detail Page

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

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 „Working Set“ eines Prozesses 1

mem_map_t Prozess mit Seiten im physischen Speicher „Least Recently Used“ (LRU) Technik zur Bestimmung

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

LRU im Detail: 1

Vortragsstruktur • Paging – – Das Virtuelle Speichermodell Die Page Table im Detail Page

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

1

nein 1

nein 1

nein 1

nein 1

nein 1

nein 1

nein ja nein 1

nein ja nein 1

nein ja nein 1

nein ja nein 1

ja nein 1

ja nein 1

ja nein 1

ja nein 1

ja nein 1

ja nein 1

Vortragsstruktur • Paging – – Das Virtuelle Speichermodell Die Page Table im Detail Page

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

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

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

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

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? 1

3. ) Speicherseiten auslagern (Swap File) Darf Prozeß geswappt werden? Dürfen Seiten geswappt werden?

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?

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?

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

Vortragsende „Linux Paging, Caching und Swapping“ 1