[SOS] Virtual Memory Manager

KAISER Edouard edouard.kaiser at gmail.com
Ven 14 Oct 15:32:05 CEST 2005


Salut à tous !

David avait proposé ceci :
> Une autre solution : utiliser la pagination derriere ton segment de
> donnees. Comme ca tu continues d'utiliser principalement la segmentation
> sauf pour l'alloc dynamique.

Je songe à mettre en place cette méthode, mais quelque chose me chiffone :
La traduction d'adresse s'effectue comme ceci :
Adresse logique --> Adresse Lineaire (par la Segmentation)
Adresse lineaire --> Adresse physique (par la Pagination)

Imaginons qu'un programme utilisateur souhaite allouer de la mémoire.
Grace à la pagination, le segment de données va pouvoir etre agrandi
sans forcement que la memoire soit contigue.
Mais étant donné qu'avant d'arriver à une transformation d'adresse par
la pagination il y a d'abord la segmentation. Il va falloir modifier
la limite du descripteur segment de données non ?
Sinon on risque de lever une exception lorsque le processus
utilisateur souhaiterai utiliser la memoire qu'il vient d'allouer ?
Si tel est le cas, on ne risque pas d'écraser ce qui se trouve aprés
le segment de données car grace à la pagination cette adresse lineaire
pointera vers une tout autre adresse physique non contigue a l'espace
que possede deja le processus.
J'ai l'impréssion que ce n'est pas trés propre :/
--
KAISER Edouard.
Wiki-Blog : http://kaiser.edouard.free.fr/
BesOS : http://besos.mtp.epsi.fr/


Plus d'informations sur la liste de diffusion Sos