Das Working Set (deutsch: Arbeitsmenge) eines Prozesses ist die Menge an Speicherseiten, die er in einem kurzen Zeitfenster tatsächlich referenziert. Es ist ein Maß dafür, wie viel Arbeitsspeicher ein Prozess benötigt, um ohne ständiges Nachladen zu laufen.
Das Lokalitätsprinzip
Programme greifen selten gleichmäßig auf ihren gesamten Speicher zu. Sie arbeiten in Phasen: kurze Zeit konzentriert auf einen Bereich (etwa eine Schleife oder eine Funktion), dann wechseln sie zu einem anderen. Dieses Verhalten nennt man Lokalität (engl. locality) – zeitlich, weil dieselben Seiten wiederholt genutzt werden, und räumlich, weil benachbarte Seiten gemeinsam gebraucht werden.
Das Working Set ist genau diese aktive Seitenmenge einer Phase. Der Informatiker Peter Denning führte das Modell 1968 ein, um vorherzusagen, wie viele Seitenrahmen ein Prozess benötigt.
Größe und Dynamik
Die Working-Set-Größe (WSS) ist die Zahl der Seiten im betrachteten Zeitfenster (engl. window). Sie ist nicht konstant: Wechselt ein Programm in eine neue Phase, verschiebt sich sein Working Set. Das Betriebssystem nähert die Größe an, indem es Seitenzugriffe protokolliert, etwa über das Access-Bit in der Seitentabelle.
Warum das wichtig ist
- Die Summe aller Working Sets darf den physischen Arbeitsspeicher nicht dauerhaft übersteigen – sonst kommt es zu Thrashing.
- Bei der Frame-Allokation gibt das Working Set an, wie viele Seitenrahmen ein Prozess mindestens bekommen sollte.
- Die Summe der Working Sets ist die Grundlage des virtuellen Speichers: Nur die aktiven Seiten müssen im RAM liegen.
Verwandte Grundlagen: Memory Paging, Seitenfehler, Thrashing, Virtueller Speicher.