[SOS] Repertoire de pages verrouillee en RAM ?

Thomas Petazzoni thomas.petazzoni at enix.org
Lun 11 Oct 15:13:02 CEST 2004


Bonjour,

On Mon, Oct 11, 2004 at 11:50:25AM +0200, Daniel Lezcano wrote :

> Dans l'article concernant la pagination, vous expliquez que le registre 
> cr3 contient l'addresse physique du repertoire de page.

Dans le cadre de l'architecture x86, c'est effectivement cela qui se
passe.

> Est-ce que cela veut dire que cette page ne peux jamais etre swappee sur 
> disque ?

Non, elle ne peut pas être swappée sur disque. En effet, il n'y a
aucun moyen de la marquer comme "absente", donc à cette adresse
physique précise, le processeur s'attend à trouver le répertoire de
pages.

De plus, sans répertoire de pages, le noyau (code + données) ne peut
être mappé en mémoire virtuelle. Pourtant, le code permettant de
récupérer une page du swap pour la remettre en RAM est précisement du
code du noyau : on se mord la queue ! ;)

> Les pages contenant les repertoires de pages sont-elles "verrouillees" 
> en RAM ?

Oui, on peut dire qu'elles sont verrouillées en RAM. Ceci dit, ce
n'est pas un mécanisme du processeur qui les "vérrouille" en RAM,
c'est bien le système d'exploitation qui se charge de conserver ces
pages en mémoire physique.

Toutefois, on pourrait peut être imaginer un système qui permet de
swapper les répertoires de pages. Il faudrait conserver en mémoire
physique le répertoire de pages de l'espace d'adressage courant, puis
avant un changement de contexte, charger le répertoire de pages
correspondant à l'espace d'adressage de destination en mémoire
physique (depuis le swap). Je pense que ça pourrait marcher, mais cela
demande un mécanisme spécifique, différent du mécanisme classique par
défaut de page.

Enfin, on peut préciser que si les répertoires de pages ne sont pas
"swappables", il me semble possible de swapper *certaines* tables de
pages. Celles qui permettent de mapper le noyau ne seront bien
entendus pas swappables, mais celles permettant de mapper le
code/données/bibliothèque/tas/pile des applications utilisateurs
pourront l'être.

J'espère que ça répond aux questions, et que je n'ai pas dit de
bêtises ;)

Bonne journée,

Thomas
-- 
PETAZZONI Thomas - thomas.petazzoni at enix.org 
http://thomas.enix.org - Jabber: kos_tom at sourcecode.de
KOS: http://kos.enix.org/ - Lolut: http://lolut.utbm.info
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E  1624 F653 CB30 98D3 F7A7


Plus d'informations sur la liste de diffusion Sos