Windows NT Paging-Algorithmen

446
user3494322

Ich habe versucht herauszufinden, wie das Paging in Windows-Betriebssystemen funktioniert. Ich habe 1998 einen Blogbeitrag von Mark Russovich über ein solches Speichermanagement gefunden. Er bespricht den "Least Recent Used" -Algorithmus.

Der Artikel ist etwas verwirrend, da seine Erklärung nicht ganz der Übersicht entspricht. Zum Beispiel ist seine Übersicht:

LRU ersetzt zuerst die Seiten, auf die Prozesse am längsten nicht zugegriffen haben

In der Erklärung heißt es jedoch, dass nur beurteilt wird, ob ein Flag, auf das zugegriffen wird, gesetzt ist oder nicht:

Wenn der Speichermanager auf einem Uniprozessor eine Seite findet, deren Kennzeichen "Zugriff" gesetzt ist, löscht der Speichermanager das Kennzeichen und fährt mit den folgenden Seiten fort, wobei er die nächste Seite auswählt, die mit einem gelöschten Kennzeichen "Zugegriffen" entfernt wurde

Durch diese Logik gibt es sicherlich keine zu vergleichenden Daten. Wenn also mehrere Seiten ohne Flag für den Zugriff vorhanden sind, wählt die MMU das erste, das sie findet (was nicht unbedingt das "LEAST USED" ist).

BEARBEITEN: http://windowsitpro.com/systems-management/inside-memory-management-part-2

0
Ich denke nicht, dass Fragen zu Windows-Internen hier thematisiert werden. Davon abgesehen wurde der Algorithmus offensichtlich optimiert. Das Durchsuchen der gesamten Liste nach der ältesten nicht verwendeten Seite ist offensichtlich zu teuer. Daniel B vor 9 Jahren 2

1 Antwort auf die Frage

0
Jamie Hanrahan

Zunächst einmal ist dieser Artikel ziemlich alt - er ist älter als Windows 2000.

Zweitens ist Marks Beschreibung des "Uhr" -Algorithmus unvollständig. Wenn der Mm ein in einem PTE gesetztes Accessed-Bit findet, wird es gelöscht. Soweit gut. Wenn es jedoch feststellt, dass das Bit bereits frei ist, wird ein Zähler im Listeneintrag der WSL (Working Set List) dieser Seite inkrementiert. Daher entsprechen höhere Zählerwerte Seiten, auf die zuvor zugegriffen wurde.

Es muss nicht so präzise sein, um Zeitstempel aufzuzeichnen.