Thrashing (Seitenflattern)
Thrashing (Seitenflattern)
Thrashing ist der Zustand, in dem das System fast nur noch mit der Behandlung von Page Faults beschäftigt ist. Die Performance nimmt exponentiell ab. Pages „flattern" zwischen RAM und Auslagerungsbereich hin und her.
Wie es entsteht
Die Vermeidung von Page Faults ist die zentrale Aufgabe der Paging-Algorithmen. Gelingt das nicht mehr und die Fault-Rate wird zu hoch:
- das System ist nur noch mit der Behandlung von Page Faults beschäftigt,
- eine Page kann zwischen RAM und Auslagerungsbereich hin und her flattern,
- die Performance nimmt exponentiell ab.
Gegenmaßnahme
Ziel: Halte für jeden Prozess immer die wichtigen Pages im RAM.
Das ist die Idee des Working Set: die Menge der Pages, die ein Prozess in einem Zeitfenster aktiv braucht. Passt das Working Set nicht in den RAM, beginnt Thrashing. Lösungen:
- die Anzahl gleichzeitig laufender Prozesse reduzieren (weniger Konkurrenz um Frames),
- Prozesse temporär auslagern (Swapping ganzer Prozesse),
- schlicht mehr RAM.
Ein System im Thrashing fühlt sich „eingefroren" an: hohe Plattenaktivität, aber kaum Fortschritt. Genau hier rächt sich der riesige Geschwindigkeitsunterschied der Speicherhierarchie.
Verwandte Notes
Paging-Algorithmen · Page Faults · Speicherhierarchie · Virtual Memory