Das Working Set Model ist eine Methode zur Vorbeugung von Thrashing. Es basiert auf der Annahme von Lokalität, also das ein Prozess eine gewisse Menge an Pages zusammen benutzt und sich diese Menge während der Prozessausführung verändert.

Dabei wird ein sogenanntes Working Set Window verwendet. Dieses ist eine Liste aller Ressourcen der letzten Schritte, die der Prozess getätigt hat.

Das Working Set ist dann die Menge aller Ressourcen im Working Set Window zu diesem Zeitpunkt.

Beispiel

Angenommen . Für einen Prozess könnte die Page Reference Table so aussehen:

Eingezeichnet ist bereits ein Zeitpunkt und das Working Set Window. Das Working Set sind dann alle Ressourcen aus diesem Window:

Anpassung von

Das Working Set beinhaltet jetzt also alle Ressourcen auf die der Prozess im im vergangenen Zeitfenster zugegriffen hat.

  • Ist zu klein, wird es kaum Lokalitäten erfassen.
  • Ist zu groß, werden oft mehrere Lokalitäten überdeckt.
  • Ist = LOC, überdeckt das Window das gesamte Programm.

Gegenmaßnahmen

Sei die absolute Anzahl der Seiten die innerhalb des letzten referenziert wurden und

die Anzahl aller referenzierten Ressourcen (total demand frames). Ferner sei die Anzahl der verfügbaren Frames. Dann gilt:

Um Thrashing also zu verhindern, werden Prozesse suspendiert, sobald eintritt. Ist , können Prozesse wieder forthfahren.

Approximierung

  • Mit Intval Timer und Reference Bits

Beispiel:

  • Der Timer unterbricht z.B. alle 5000 Zeitschritte
  • Jeder Eintrag der Page Table bekommt 2 zusätzliche Bits
  • Bei jeder Timer Unterbrechung werden die Bitinhalte der ersten Spalte in die zweite kopiert und auf 0 gesetzt
  • Wenn eines der Bits = 1 -> Page im Working Set
  • Ungenau

Heuristische Anpassung

  • Ist die Page Fault Rate niedrig, wird die Page Table verkleinert
  • Ist die Page Fault Rate hoch, wird die Page Table vergrößert