next up previous contents
Next: Structure U Up: Adressage d'un processus Previous: Adressage d'un processus   Contents

Segmentation

Sous système V, l'espace virtuel est divisé en régions (zone continue d'espace d'adressage virtuel).

La table système des régions contient un point d'entrée pour chaque région active du système avec :

Le texte, les données et la pile forment 3 régions distinctes. Il y a de plus :

La table des pointeurs sur les régions (pregion) se trouve selon les implémentations, soit dans la table proc soit dans la structure U (analogie entre la structure FILE pour la table des inodes et la table région pour la table des régions).

Le noyau dispose également d'une table des régions gérées par la liste des entrées disponibles et la liste des entrées actives.

Une région peut être attachée à 1 ou plusieurs processus (son compteur de référence est incrémenté).

Lors de la création d'un nouveau processus, comme, en général l'appel de fork est suivi de exec, il n'est pas utile de dupliquer les zones mémoires. Il n'y a de recopie que si le père ou le fils tente d'écrire dans la région.

Un processus peut accroître sa taille mémoire par les appels malloc, brk ou sbrk. La taille de la table des pages ainsi que du swap doivent être modifiées.

La fragmentation de la mémoire est évitée par la fusion des morceaux disponibles dans mfree. Il n'existe pas d'algorithme de déplacement de ce qui est adressé en mémoire centrale.

Structure UStructure U


next up previous contents
Next: Structure U Up: Adressage d'un processus Previous: Adressage d'un processus   Contents
Arnaud Revel
2001-11-26