[SOS] Pagination ?
Cyril Dupuit
cyrildupuit at hotmail.com
Lun 11 Oct 10:23:38 CEST 2004
Salut,
>Je réponds déjà la première question. La seconde question mérite une
>réponse plus réfléchie, et la relecture d'un peu de code source.
Si tu veux plus de code source, je t’envoie le code complet.
> > Que se passe t-il lorsque l'objet sera transféré sur disque pour libérer
>la
> > mémoire centrale, puis réaffecté en mémoire centrale à une autre adresse
> > physique ?
> > La valeur d'ID ne correspondra plus avec le pointeur sur l'objet.
>
>Plusieurs choses :
>
> 1) La valeur d'ID est déduite de l'adresse de l'objet. Quand tu
> utilises la pagination, le noyau manipule des adresses
> _virtuelles_ dont même si tu swappes la page sur le disque, puis
> que tu la replaces ensuite en mémoire, l'adresse _virtuelle_ ne
> changera pas (par contre l'adresse _physique_ peut avoir
> changé). Pour rappel, ce qui permet de générer un défaut de page,
> c'est qu'une page _virtuelle_ est marquée comme "absente".
>
> 2) Es-tu sûr de vouloir swapper des données de ton noyau ? Pour
> certaines d'entre elles c'est possible, mais imagine que tu
> commences à swapper des données qui servent justement à aller
> récupérer des données du swap (un objet "disque dur", une file
> d'attente d'entrées sorties, etc...).
Je ne suis pas sûr de vouloir swapper, mais, si un processus doit être
enregistré sur disque pour libérer de la mémoire, tout les objets de ce
processus vont avoir une autre adresse physique.
D’après ce que tu me dis, l’objet est à l’origine créé avec une adresse
virtuelle, donc, le swapping n’aura pas d’influence sur les ID.
>J'espère que cela répond à tes questions. Si ce n'est pas le cas,
>n'hésites pas à demander !
Il me manque la réponse concernant la pile. Elle n’est pas primordiale, mais
c’est juste pour savoir.
Encore merci.
Cyril
_________________________________________________________________
MSN Search, le moteur de recherche qui pense comme vous !
http://search.msn.fr
Plus d'informations sur la liste de diffusion Sos