2017-02-14 3 views
0

J'ai résolu une question, où la taille de l'entrée de table de page avait besoin de seulement 26 bits - 22 pour l'adresse physique, et 4 pour les bits sales et autres. Cependant, il a été arrondi à 32 - parce que 26 n'est pas une puissance de 2. Doit être quelque chose de simple, je suis absent, mais pourquoi devons-nous faire cela? Merci!Taille d'entrée de la page de page - pourquoi une puissance de 2?

Répondre

1

Je pense ici que vous devez réaliser que l'entrée de la table de pages doit être accédée comme n'importe quelle autre donnée. Typiquement, cela signifie qu'il doit s'insérer dans un octet ou un mot.

Maintenant, les octets ne contiennent que 8 bits, donc ce n'est pas assez de place. Pour de nombreuses machines (et je suppose que votre machine aussi), les mots sont 32 bits.

Ainsi, l'entrée de table de page reçoit 32 bits d'espace.

0

Le nombre d'entrées dans une entrée de table de pages et la taille sont deux choses. Évidemment, la taille est égale au nombre d'entrées multiplié par la taille d'une seule entrée. L'entrée de table de page est là pour vous indiquer quelle page virtuelle correspond à quelle page physique. Ce qui signifie que le nombre d'entrées dont vous avez besoin dans une entrée de table de pages est le nombre de pages virtuelles que vous avez. qui peut être calculé en divisant l'espace adressable total par la taille d'une page. (Par exemple, une adresse de 32 bits et une taille de page de 4k nous donne 2 à la puissance 20 entrées), la partie virtuelle d'une entrée sera de 20 bits. La taille d'une entrée de pièce physique est déterminée par la mémoire physique disponible. Habituellement, la taille de la page reste la même. De cette façon, vous pouvez calculer les bits nécessaires pour une seule entrée. Ensuite, vous pouvez multiplier cela par le nombre d'entrées et vous avez la taille totale.