Der Working Set Seitenersetzungsalgorithmus basiert auf interessanten Erkenntnissen:
Insgesamt ist damit erkennbar, dass bei vielen nacheinander auf der CPU ausgeführten Befehlen nur relativ wenig verschiedene virtuelle Seiten angesprochen werden. Genau diese Seiten bilden nun das Working Set des betrachteten Prozesses.
Der Working Set Algorithmus versucht nun, alle zum Working Set eines Prozesses gehörenden Seiten ständig im Hauptspeicher zu halten.
Optimalerweise geht der Algorithmus dabei sogar noch einen Schritt weiter:
Halte für alle Prozesse auch alle zum jeweiligen Working Set gehörigen virtuellen Seiten stets in einem Seitenrahmen eingelagert.
Sofern dies gelingt, kann man ein System erwarten, welches nur noch eine verhältnismäßig kleine Zahl an Seitenfehlern produziert.
Der Working Set Algorithmus nutzt den sogenannten Lokalitätseffekt von Prozessen, der nach Glatz 2010 wie folgt umschrieben werden kann:
Der Lokalitätseffekt bezeichnet die Idee, dass innerhalb größerer Zeiträume immer nur ein Teil des gesamten Codeumfangs eines Prozesses ausgeführt wird.
Du kennst sicher die 80/20-Regel:
80 Prozent der von einer Software bereitgestellten Funktionen werden höchstens von 20 Prozent der Nutzer tatsächlich eingesetzt.
Erläutere (unter der Voraussetzung, dass die Regel zutrifft):
Wie unterstützt diese Regel den Working Set Algorithmus bei seinem Ziel, möglichst wenig Seitenfehler entstehen zu lassen?
Eine detailliertere Auseinandersetzung mit dem Working Set Algorithmus findet sich u.a. bei:
und kann dort - je nach Verfügbarkeit der Quellen - nachgelesen werden.
Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png