2016-10-02 1 views
1

Je lisais le livre de dinosaure sur le système d'exploitation sur la gestion de la mémoire. Je suppose que c'est l'un des meilleurs livres mais il y a quelque chose à propos de la pagination écrite dans le livre que je n'ai pas. Le livre dit: «Une CPU 32 bits utilise des adresses 32 bits, ce qui signifie qu'un espace de processus donné ne peut être que de 2^32 octets (4 To) .La pagination nous permet donc d'utiliser une mémoire physique plus grande que ce qui peut être adressé par la longueur du pointeur d'adresse de la CPU. "La pagination permet-elle d'utiliser une mémoire physique plus grande que celle qui peut être adressée par la longueur du pointeur d'adresse de la CPU?

Je ne comprends pas très bien cette partie car si la CPU ne peut se référer qu'à 2^32 adresses physiques différentes, s'il y avait 2^32 + 1 adresses physiques, la dernière adresse ne pourra pas être atteinte par le CPU. Alors, comment la pagination peut-elle aider? En outre, plus tôt, le livre indique "Souvent, sur une CPU 32 bits, chaque entrée de table de page a une longueur de 4 octets, mais cette taille peut également varier.Une entrée de 32 bits peut pointer vers l'une de 2^32 cadres de page physique Si la taille de trame est de 4 Ko (2^12), alors un système avec des entrées de 4 octets peut adresser 2^44 octets (ou 16 To) de mémoire physique. " Je ne vois pas comment cela est même possible dans des situations idéales/théoriques, car si je comprends bien, une partie de l'adresse virtuelle se référera à une entrée de la table de pages tandis que l'autre partie de l'adresse virtuelle se référera à la déportation de ce type particulier dans cette page. Donc, dans la situation mentionnée ci-dessus mis en avant par le livre, même si le CPU pourrait pointer vers 2^32 entrées de page différentes, il ne sera pas capable de lire un octet particulier dans cette page parce qu'il ne spécifie pas le bureau. Peut-être que j'ai mal compris le livre ou qu'il y a une partie que j'ai ratée. J'apprécie beaucoup votre aide! Merci beaucoup!

Répondre

0

Il semble que vous ayez besoin de graver votre livre. C'est inutile. "[P] vieillir nous permet d'utiliser une mémoire physique plus grande que ce qui peut être adressé par la longueur du pointeur d'adresse de la CPU" est un non-sens complet (sauf si le livre attribue deux significations différentes au terme "pagination", dans lequel c'est toujours inutile).

Commençons par l'adressage logique. Une adresse logique est composée d'un sélecteur de page et est décalée dans la page. Un certain nombre (P) de bits sera affecté au sélecteur de page et le reste sera affecté au décalage. Si les pages ont 2^9 bits, il y a 23 bits dans le sélecteur de page et 9 bits pour le décalage d'octets dans la page.

Notez que le choix 9/23 est arbitraire de ma part. De nos jours, la plupart des systèmes utilisent des pages plus grandes, mais ce sont des valeurs qui ont été utilisées dans le passé.

Les 23 bits du sélecteur de page sont des index dans la table de pages de processus.

La taille des entrées dans la table de pages va être une puissance de 2 (et je n'en ai jamais vu moins de 4). Pour notre propos, disons que chaque entrée a une longueur de 8 octets.

Les bits de l'entrée de la table de pages sont divisés entre ceux qui indexent les trames de page physiques et les bits de contrôle. faisons le choix arbitraire que les trames de page d'index 32 bits et 32 ​​bits sont utilisées pour le contrôle.

Cela signifie que le système peut théoriquement gérer 2^32 pages de 2^9 octets de large ou un total de 2^41 octets. Si nous devions augmenter la taille de la page de 2^9 à 2^20, le système pourrait théoriquement gérer 2^52 (32 + 20) octets de mémoire.Notez que chaque processus peut toujours seulement ACCES 2^32 octets. Mais dans mon système de pages 9 bits, 2^9 processus pouvaient chacun accéder à 2^32 pages simultanément sur un système avec 2^41 octets physiques de mémoire (en ignorant la nécessité d'un espace d'adressage système partagé dans cette simplification grossière). Notez que si je change ma table de page en 32 bits et affecte 9 de ces bits à contrôler et 23 à la sélection de cadres de page, le système ne peut gérer que 2^32 octets de mémoire (et c'était plus commun que gérer plus de 2^32 octets). Vous citez: "Sur une CPU 32 bits, chaque entrée de table de page a une longueur de 4 octets, mais cette taille peut varier, une entrée de 32 bits peut pointer sur une page physique de 2^32. Si la taille de l'image est de 4 Ko (2^12), alors un système avec des entrées de 4 octets peut adresser 2^44 octets (ou 16 To) de mémoire physique. "

Ceci est BS théorique. Un système qui utilisait toutes les 32 bits de l'entrée de la table de pages en tant qu'index pour les cadres de page ne pouvait pas fonctionner. Il devrait y avoir quelques bits de contrôle dans la table de page.

Les citations que vous prenez de ce livre sont très trompeuses. Peu de processeurs 32 bits peuvent même accéder à 2^32 octets de mémoire en raison des limitations de la ligne d'adresse.

Bien qu'il soit possible que l'utilisation de pages logiques puisse permettre à un processeur de gérer plus de mémoire que ne le suggère la taille de l'adresse logique, ce n'était pas le but de gérer la mémoire dans les pages. Le but de pagination - qui dans son utilisation normale et habituelle se réfère au déplacement des pages de mémoire virtuelle entre les pages physiques et le stockage secondaire - est de permettre aux processus d'accéder à plus de mémoire virtuelle qu'il n'y avait de mémoire physique sur le système.

Il existe un autre système de gestion de la mémoire qui disparaît (heureusement): les segments. Les segments permettaient également aux systèmes de gérer plus de mémoire physique que l'espace d'adressage logique ne le permettait.

+0

Haha, merci pour la réponse! ça confirme assez ma propre compréhension, je ne suis pas aussi audacieux que toi pour dénoncer avec passion le livre puisque le livre semble être assez prestigieux xD donc c'est bon de savoir que je ne suis pas le seul à penser que le livre est bizarre .. .. le livre est Concepts du système d'exploitation par Silberschatz, Galvin, Gagne, j'espère que d'autres débutants peuvent également obtenir moins induits en erreur par le livre = de toute façon, merci :) – sosostris

+0

Man $ 160 dollars sur Amazon. Il y a des copies de VAX/VMS Internals et de structures de données de moins de 5 $ qui auraient une meilleure information, si elles sont datées. – user3344003