[SOS] Virtual Memory Manager

KAISER Edouard edouard.kaiser at gmail.com
Mar 2 Aou 19:54:29 CEST 2005


Bonjour à tous !
Encore désolés pour le dérangement, mais il y a certains points qui
sont flous dans ma tête en ce qui concerne la gestion et allocation de
mémoire pour le Noyau.
SOS permet si j'ai bien compris d'allouer des "régions" dans la
mémoire. Cependant j'ai du mal à saisir l'utilité de ces régions que
vous appellez "range".
Les régions contiennent elles les caches qui eux meme contiennent les
slabes qui pour finir contiennent une liste d'objet ?
J'ai du mal à saisir la hiérarchie et ce qu'il se passe réellement. En
fait le concept de la pagination me perturbe, surement pour rien, mais
bon...
Imaginons que SOS n'active pas la pagination et se contente de la RAM
disponible, nous avons donc une adresse linéaire qui devient
directement une adresse physique (si la base du segment dans la GDT
est à 0 bien sur).
Le VMM va donc découper la RAM en régions ?
Ces régions qui seraient donc logiquement plus grande que 4Ko, vu
qu'on gerait deja la mémoire en page de 4Ko, contiendraient les caches
caractérisés par une taille d'objet précise. Et on retrouverait dedans
les slabs.
Pourquoi dans les régions ne pas directement stockées un slab qui est
déja une structure qui contient une liste d'objet de taille précisé
dans la description du slab ?
Les objets qui sont dans les slabs, sont ils le résultat cpncret d'une
demande d'allocation ?
Je veux dire par la, si je demande un "malloc"(2048), va t il y avoir
dans le slab caracterisé par une taille d'objet de 2048, un "objet"
qui va etre crée dans la liste et dont on me renverra l'adresse pour
que je puisse l'utiliser ?
Comme vous voyez c'est assez flou dans ma tete, j'essaye d'éclaircir
mais dur dur :(
Merci à ceux qui pourront m'aider  et ceux qui ont pris le temps de me lire !
-- 
KAISER Edouard.
Wiki-Blog : http://kaiser.edouard.free.fr/
BesOS : http://besos.mtp.epsi.fr/


Plus d'informations sur la liste de diffusion Sos