7 votes

Cadres de page minimum

Qu'est-ce qui détermine le nombre minimum de cadres de page qui doivent être alloués à un processus en cours d'exécution dans un environnement de mémoire virtuelle.

J'ai trouvé la réponse à la question ci-dessus. instruction set architecture mais ne pouvait pas comprendre la raison derrière cela.

veuillez expliquer.

EDIT : La question se trouve sur le lien suivant http://www.geeksforgeeks.org/archives/4036 (voir question 3), je ne suis pas en mesure de comprendre la logique derrière la réponse.

19voto

Deepthought Points 954

Oui, l'AIS joue un rôle.
Imaginez cette condition hypothétique si l'ISA supporte une instruction (comme mov en x86) qui peut prendre un opérande après 3 niveaux d'indirection (rappelez-vous le mode d'adressage indirect du x86). Appelons ce système A.
Sur un autre système, vous pouvez avoir un maximum de deux niveaux d'indirection, que l'on appelle B.

Sur A et B, si nous donnons 4 comme nombre minimum de cadres, voyez ce qui se passe. B fonctionne bien mais pas A, voici la raison :
quand une instruction qui a 3 niveaux d'indirection dans son opérande est chargée dans le processeur pour être exécutée, rappelez-vous que nous n'avons que 4 trames pour ce processus, supposez ce scénario
Le cadre 1 sera pour l'instruction elle-même.
La trame 2 sera pour le 1er niveau d'indirection, l'opérande est dans une autre page.
La trame 3 sera pour le 2ème niveau d'indirection, peut-être n'était-elle pas dans la plage d'adresses de la trame précédemment allouée.
cadre 4, la même chose se produit avec le niveau suivant d'indirection.
Maintenant, rappelez-vous le pipeline, seulement après que la récupération de l'opérande soit faite, nous pouvons passer à l'étape d'exécution suivante, mais nous n'avons pas l'opérande final, nous avons seulement l'adresse de l'endroit où il se trouve dans le cadre 4, maintenant vous obtenez un défaut de page, donc vous enlevez un des cadres précédemment alloués pour traiter et redémarrer l'instruction qui a causé le défaut, mais encore une fois la même chose se produit. Le système B n'a pas ce problème.

Autant que je m'en souvienne, c'est de cette manière que l'ISA joue un rôle dans la détermination du nombre minimum de cadres pour un processus. Référez-vous à Galvin, je pense que le livre couvre ceci dans la section mémoire virtuelle.
Mais c'est en théorie, je ne sais pas comment le processus se déroule dans un système réel comme Linux.

Santé :)

Edit:- Comme indiqué dans le lien que vous avez indiqué, l'instruction peut traverser la limite de la page.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X