2

Souvent, sur une CPU 32 bits, chaque entrée de table de pages a une longueur de 4 octets, mais cette taille peut également varier. Une entrée de 32 bits peut pointer vers l'un des cadres de pages physiques 2^32. Si la taille d'image est de 4 Ko (2^12), un système avec des entrées de 4 octets peut adresser 2^44 octets (ou 16 To) de mémoire physique . Nous devons noter ici que la taille de la mémoire physique dans un système de mémoire paginée est différente de la taille logique maximale d'un processus .Quelqu'un peut-il expliquer cela sur la pagination dans le système d'exploitation?

Comment la pagination fait-elle de l'espace mémoire logique plus que de l'espace mémoire physique? Le nombre total de trames dans la CPU 32 bits n'est-il pas égal à 2^(32-12) = 2^20 nombre de trames au lieu de 2^32 nombre de trames? Si oui, n'est-ce pas un système avec une entrée de 4 octets capable d'adresser (2^20) * (2^12) octets de mémoire?

+0

Le nombre d'images en mémoire est 'taille de la mémoire \ taille de la page'. Si vous avez une mémoire principale de 4 Go, alors vous aurez '2^20' images. En plus de cela, votre question est trop large. –

Répondre

2

Ce texte n'est pas très clair, certes. Je vais essayer de l'effacer.

Lors de la traduction d'une adresse virtuelle en physique, un nombre fixe de bits inférieurs ne se traduit pas:

+---------------------+----------+ 
| High bits  | Low bits | 
+---------------------+----------+ 
     |     | 
     |     | 
     V     | 
    [Page tables]   | 
     |     | 
     |     | 
     V     V 
+---------------------+----------+ 
|  Physical address  | 
+---------------------+----------+ 

Le nombre de bits inférieurs est lié à la taille de la page: si nous supposons pages 4Kio alors les 12 bits inférieurs sont fixes et non traduits.
Nous supposons également que l'espace d'adressage virtuel est de 32 bits.

Si une entrée de table de pages a une longueur de 32 bits, elle peut utiliser 32 bits comme partie haute de l'adresse physique.
Ainsi, nous avons 20 (32 - 12) bits en entrée et 32 ​​bits en sortie lorsque vous recherchez les tables de pages.
Avec les 12 bits supplémentaires de la partie fixe, cela donne 32 + 12 = 44 bits d'adresse physique.

Un chiffre mis à jour:

 <---------- 32 bits -----------> 
     <---- 20 bit -------> <- 12 b -> 
     +---------------------+----------+ 
     | High bits  | Low bits | 
     +---------------------+----------+ 
       |     | 
       | 20 bit   | 
       V     | 
     [Page tables]   | 
       |     | 
       | 32 bit   | 
       V     V 
+----------------------------+----------+ 
|   Physical address   | 
+----------------------------+----------+ 
<-------- 32 bits ---------> <- 12 b -> 
<------------- 44 bits ---------------> 

Ce n'est pas un vrai 44 bits d'adressage cependant, les pointeurs sont encore 32 bits.
L'application ne peut accéder directement qu'à 4 Go de mémoire, mais le système d'exploitation peut mapper une application sur le premier 4GiB, un autre sur le second 4GiB et ainsi de suite. Ceci est similaire à PAE fonctionne sur x86.

L'hypothèse selon laquelle toute l'entrée d'une table de pages est utilisée pour donner les bits les plus élevés de l'adresse physique est fausse.
Certains des bits sont utilisés pour définir l'attribut de la trame: capacité de cache, droit d'accès, état de mappage, etc.

Les bits les plus élevés de l'adresse physique sont appelés cadres de page.
Le nombre de cadres de page est déterminé par la structure d'une entrée de table de pages, et non par la taille de l'espace d'adressage virtuel (ni de l'espace d'adressage physique).
Si une entrée de table de page a 50 bits pour le numéro de trame, il y a 2 .
La partie inférieure de l'adresse physique est appelée décalage de page et il est déterminé par la taille de la page (ou taille de l'image, ils sont égaux par la conception).