Ainsi, Belady's Anomaly déclare que lors de l'utilisation d'une politique de remplacement de page FIFO, lors de l'ajout d'espace de page, nous avons davantage de défauts de page.
Mon intuition dit que nous devrions moins ou au plus autant de fautes de page que nous ajoutons plus d'espace de page.
Si nous considérons une file d'attente FIFO comme un canal, ajouter plus d'espace page revient à agrandir le canal:
____
O____O size 4
________
O________O size 8
Alors, pourquoi voudriez-vous avoir plus de fautes de page? Mon intuition dit qu’avec un tuyau plus long, il faudrait un peu plus de temps pour commencer à avoir des défauts de page (ainsi, avec un tuyau infini, il n’y aurait pas de défaut de page) et vous auriez autant de défauts de page et de souvent comme avec un tuyau plus petit.
Quel est le problème avec mon raisonnement?
Lorsque vous utilisez la FIFO, l'augmentation du nombre de pages peut augmenter le taux de pannes dans certains modèles d'accès, car si vous avez plus de pages, les pages récemment demandées peuvent rester plus longtemps au bas de la file d'attente FIFO.
Considérons la troisième fois que "3" est demandé dans l'exemple wikipedia ici: http://en.wikipedia.org/wiki/Belady%27s_anomaly
Les défauts de page sont marqués d'un "f".
1:
Page Requests 3 2 1 0 3 2 4 3 2 1 0 4
Newest Page 3f 2f 1f 0f 3f 2f 4f 4 4 1f 0f 0
3 2 1 0 3 2 2 2 4 1 1
Oldest Page 3 2 1 0 3 3 3 2 4 4
2:
Page Requests 3 2 1 0 3 2 4 3 2 1 0 4
Newest Page 3f 2f 1f 0f 0 0 4f 3f 2f 1f 0f 4f
3 2 1 1 1 0 4 3 2 1 0
3 2 2 2 1 0 4 3 2 1
Oldest Page 3 3 3 2 1 0 4 3 2
Dans le premier exemple (avec moins de pages), il y a 9 défauts de page.
Dans le deuxième exemple (avec plus de pages), il y a 10 défauts de page.
Lors de l'utilisation de FIFO, augmenter la taille du cache modifie l'ordre dans lequel les éléments sont supprimés. Ce qui, dans certains cas, peut augmenter le taux de pannes.
L'Anomalie de Belady ne dit rien sur la tendance générale des taux de fautes en ce qui concerne la taille du cache. Donc, votre raisonnement (à propos de l'affichage du cache sous forme de canal), dans le cas général n'est pas faux.
En résumé: Belady's Anomaly signale qu’il est possible d’exploiter le fait que des tailles de cache plus grandes peuvent provoquer la remontée d’éléments du cache dans la file FIFO plus tard Les tailles de cache doivent avoir un taux de défaillance plus élevé sous un modèle d'accès particulier (et éventuellement rare).
Cette déclaration est fausse car elle est trop généralisée:
L’anomalie de Belady indique que lorsqu’on utilise une politique de remplacement de page FIFO, lorsqu’on ajoute plus d’espace de page, il y a plus de défauts de page.
Ceci est une version corrigée:
"L'anomalie de Belady stipule que lors de l'utilisation d'une règle de remplacement de page FIFO, lors de l'ajout de plus d'espace de page, les modèles d'accès à la mémoire certains entraîneront davantage de défauts de page."
En d'autres termes ... si l'anomalie est observée dépend du modèle d'accès réel à la mémoire.
L’anomalie de Belady se produit dans l’algorithme de remplacement de page qui ne suit pas l’algorithme de pile. Cela peut parfois arriver dans FIFO, même lors d'un remplacement de page aléatoire, mais pas LRU ou optimal.