next up previous contents
suivant: L'allocation de pages monter: Le passage en mode précédent: La table des zones   Table des matières

La page d'indirection

Le passage en mode paginé pose un problème: en effet, comment modifier les tables des pages, sachant qu'elles ne sont référencés dans le répertoire des pages que par leur adresse réelle, et non par leur adresse virtuelle? L'ajout de pages se fait forcément par une modification d'une table des pages. Il faut donc mapper ces tables des pages en mémoire.

Ceci est fait grâce à la création d'une page d'indirection, appelée ttpage, et située à l'emplacement 0x3000. Cette page est en fait une table des pages, qui référence non pas des pages, mais les tables de pages rélles. En mappant ttpage à l'emplacement 0x10000000, on peut ainsi atteindre les tables des pages par simple décalage de l'adresse:

Exemple: on désire modifier la table des pages correspondant à l'adresse 0x105000. On va pouvoir atteindre directement cette table des pages à l'adresse 0x10000000 + 4*((0x105000 & 0xffc) $>>$ 12).



2003-03-30