Pourquoi hiérarchique à l'aide de tables de pages?
Je suis en train d'apprendre le noyau Linux et la lecture du livre Le Noyau Linux.
Quelqu'un peut-il expliquer pourquoi ne peut-on pas utiliser la table des cartes directement entre logique et physique de la mémoire à la place de l'arbre comme la structure multiniveau?
Ajouté:
Le nombre total d'entrées nécessaires est fixe, donc je suppose que c'est plus de gaspiller de l'espace pour stocker une structure compliquée qu'une simple.
OriginalL'auteur Determinant | 2012-03-23
Vous devez vous connecter pour publier un commentaire.
Vous apprécierez l'optimisation de l'espace de multi-niveau de la page des tables lorsque nous entrons dans la version 64 bits de l'adresse de l'espace.
Supposons que vous disposez d'un ordinateur 64 bits ( ce qui signifie 64 bits espace d'adressage virtuel ), qui a pages de 4 ko et 4 GO de la mémoire physique. Si nous avons un seul niveau de la table des pages comme vous le suggérez, il doit contenir une entrée par page virtuelle par processus.
Une entrée par page virtuelle – 264 adressable octets /212 octets par page = 252 entrées de table de page
Une page d'entrée de la table contient: bits de contrôle d'Accès ( Bits comme la Page actuelle, RW etc ) + Physique numéro de page
4 GO de Mémoire Physique = 232 bytes.
232 octets de mémoire/212 octets par page = 220 pages physiques
20 bits requis pour la physique, numéro de la page.
De sorte que chaque entrée de table de page est d'environ 4 octets. ( 20 bits physique numéro de page est d'environ 3 octets de contrôle d'accès et contribue 1 octet )
Maintenant, la Page Taille de la table = 252 entrées de table de page * 4 octets = 254 bytes ( 16 pétaoctets ) !
16 pétaoctets par processus est une très grande quantité de mémoire.
Maintenant, si nous la page de la pagetable trop, c'est à dire si l'on utilise des multi-niveau de la page des tableaux, nous pouvons magiquement faire baisser la mémoire nécessaire à une seule page. ie seulement 4 KO.
Maintenant, nous allons calculer combien de niveaux sont nécessaires pour presser la table des pages en seulement 4 KO. Page de 4 KO /4 octets par entrée de table de page = de 1024 entrées. 10 bits de l'adresse de l'espace requis. j'.e 52/10 ceiled est 6. ie 6 niveaux de la table des pages peut apporter en bas de la page taille de la table est à seulement 4 KO.
6 niveau d'accès sont certainement plus lent. Mais je voulais illustrer le gain de place en multi niveau des tables de pages.
J'ai complètement reformulé ma réponse pour vous expliquer plus clairement l'espace des optimisations.
Merci beaucoup! Expliqué de façon claire et précise!
BTW. Combien de pages il y a en fait si j'ai 6 niveaux?
4 GO de RAM = 2^32 octets.
OriginalL'auteur Pavan Manjunath
http://en.wikipedia.org/wiki/Page_table#Multilevel_page_table est de surmonter l'inversion de la page table des pièges.
OriginalL'auteur Dyno Fu