next up previous contents
suivant: Gestion de heap monter: Gestion de la mémoire précédent: La page d'indirection   Table des matières

L'allocation de pages

L'allocation de pages est la base de la gestion de la mémoire. Elle est gérée via la fonction kpage_alloc. Cette fonction va réserver une page mémoire, et la mapper dans l'espace d'adressage à l'endroit souhaité par l'utilisateur.

La fonction kpage_alloc commence par rechercher une zone libre dans la table des zones. Cette zone est alors marquée comme allouée. On recherche ensuite si la table des pages correspondant à cette adresse existe. Si oui, on place directement l'adresse réelle de la nouvelle page dans la table des pages, en utilisant le mécanisme d'indirection de ttpage. Sinon, on doit tout d'abord créer la table des pages, l'ajouer à ttpage, puis ajouter la nouvelle page à cette table.

D'autres fonctions permettent de partager de la mémoire, c'est à dire d'avoir deux adresses virtuelles qui pointent vers la même zone mémoire réelle, ou encore de libérer des pages précédemment allouées. Dans ce cas, on vérifie si la table des pages correspondante doit être libérée, si la page que l'on libérait était la seule dans la table.


next up previous contents
suivant: Gestion de heap monter: Gestion de la mémoire précédent: La page d'indirection   Table des matières
2003-03-30