Lors de la simulation de l'algorithme de remplacement de la page d'horloge, lorsqu'une référence est déjà en mémoire, l'aiguille de l'horloge incrémente-t-elle toujours?
Voici un exemple:
Avec 4 emplacements, en utilisant l'algorithme de remplacement de la page d'horloge
Liste de référence: 1 2 3 4 1 2 5 1 3 2 4 5
La liste initiale ressemblerait à ceci:
-> [1][1]
[2][1]
[3][1]
[4][1]
La prochaine référence à insérer serait 1, puis 2. La main pointe-t-elle toujours à 1 après 1 et après 2? En d'autres termes, après avoir inséré le 5, l'horloge ressemblerait-elle à ceci:
-> [5][1]
[2][0]
[3][0]
[4][0]
?
la source
Si une référence arrive pour une page déjà en mémoire, l'algorithme de remplacement n'est pas du tout appelé.
L' algorithme de remplacement d'horloge essaie d'obtenir certains des avantages du remplacement LRU, mais sans l'énorme surcharge de manipulation des bits LRU à chaque page visitée.
Une page peut être dans l'un des trois états suivants:
recently-used
bit esttrue
. Dans ce cas, il n'y aura aucun défaut de page lorsqu'un accès se produit à la page, donc aucun bit ne changera.recently-used
bit l'estfalse
. Dans ce cas, la page est également marquée dans le tableau des pages de telle sorte que si la page est consultée, une erreur de page se produira. (Et si l'erreur de page se produit dans ce cas, la seule chose que le gestionnaire d'erreur de page fait est de changer l'état enrecently-used
.)clock-hand
. Pendant que leclock-hand
pointe vers une page avec lerecently-used
bit défini,true
nous inversons lerecently-used
bitfalse
, puis l'incrémentonsclock-hand
pour pointer vers la page suivante. Lorsque nous trouvons une pagerecently-used
déjà effacée, c'est la page que nous remplaçons. Ensuite , nous marquons la nouvelle pagerecently-used
et incrémenter leclock-hand
à la prochaine page.L'horloge est, au fond, un algorithme probabiliste pour approximer LRU. Si le taux auquel la page est consultée est beaucoup plus élevé que le taux auquel la page
clock-hand
revient sur la même page, alors la page a une forte probabilité d'être marquéerecently-used
. Si le taux auquel la page est consultée est faible par rapport au taux auquel la pageclock-hand
revient, alors la page est plus susceptible d'être en état de ne pas l'êtrerecently-used
. La page la plus récemment utilisée ne sera jamais remplacée. (Pourquoi?)la source