Croisière au coeur d'un OS Etape 4 : La pagination
x86 : Répertoire des pages et tables des pages
Présentation
Dans la page précédente nous avons parlé de table de premier niveau et table de second niveau qui sont respectivement
le répertoire des pages (PD) et les tables des pages (PT), dont les entrées sont appelés PDE et PTE (E pour Entries).
Il y a un seul répertoire des pages et plusieurs tables des pages (1024).
Pourquoi deux niveaux? tout simplement pour pouvoir utiliser toutes les adresses possibles (jusqu'a 4Go de RAM).
explication arithmétique :
Une entrée dans une table des pages (PTE) correspond à une page d'adresse linéaire,
qu'il y ait une page en RAM associé ou non.
Soit 4ko.
Il y a 1024 entrées dans une table des pages, donc elle couvre 1024*4ko, 4Mo d'adresse linéaire.
Un entrée du répertoire des pages (PDE) renvoie sur une table des pages (PT).
Le répertoire des pages contient 1024 entrées il y a donc 1024*4Mo, 4Go d'adresse linéaire.
Ce qui correspond bien au 4Go de RAM adressable avec un processeur 32bits.
Structure des PDE et PTE
Nous avons vu que le répertoire des pages et les tables
des pages sont des tableaux de 4ko qui contiennent
chacun 1024 entrées de 4 octets : les PDE et les PTE.
La norme Intel spécifie que ces deux
types d’entrée ont la mˆeme structure, mis à part pour
deux bits. Parmi les éléments importants de leur structure
figurent :
- bits 31-12 : les 20 bits de poids fort de l’adresse en RAM de la table des pages (pour les PDE) ou de la page (pour les PTE) associée. Ces bits permettent d’identifier totalement une table des pages/une page. Les autres bits d’une adresse en RAM d’une table de pages/d’une page (ie les 12 bits de poids faible) valent en effet 0 car une table de pages/une page commence toujours à une adressemultiple de 4 Ko (ie 212).
- bit 2 : indique le privilège requis pour accéder à la table des pages (PDE) ou à la page (PTE) associée : vaut 0 si la table des pages/la page n’est accessible qu’en mode superviseur (cf. l’article 2), vaut 1 sinon.
- bit 1 : indique si la table des pages (PDE) ou la page (PTE) associée est accessible en lecture seule (vaut 0), ou si elle est accessible en lecture/´ecriture (vaut 1).
- bit 0 (bit “P” pour “present”) : indique si la table des pages (PDE) ou la page (PTE) associée est présente en RAM.
page suivante >