2016-01-24 1 views
0

je suis en train de lire Concepts du système d'exploitation par Galvin .Sous le sujet Paging, je suis venu pour savoir que, si la taille de l'espace d'adressage logique est 2^m, et une taille de page est 2^n unités d'adressage (octets ou mots), puis les bits mn d'une adresse logique désignent le numéro de page et n bits de poids faible désignent le décalage de page.Pourquoi m-n bits plus élevés donnent un numéro de page et n bits inférieurs donnent un décalage?

Je ne pouvais pas comprendre pourquoi c'est le cas, alors s'il vous plaît fournir une explication pour le même.

Répondre

0

La raison de l'utilisation des bits élevés est la localité. Lorsque vous accédez à des éléments à partir de structures de données telles que array, stack ou record (alias struct en C), ces éléments sont situés à proximité les uns des autres. Ainsi, les adresses ne diffèrent probablement que par les bits les moins significatifs, laissant les bits les plus significatifs inchangés. Cela signifie que les éléments sont la plupart du temps dans la même page. Supposons que vous utilisiez les bits faibles pour le numéro de page. Pour faciliter les choses, supprimez deux ou trois bits les moins significatifs pour que l'adresse soit alignée sur le mot machine. Les éléments qui étaient les uns à côté des autres sont maintenant toujours dans des pages différentes. De plus, les éléments plus gros qu'un mot sont maintenant divisés en plusieurs pages.

La même raison s'applique également aux caches.