Information Technology Reference
In-Depth Information
13.2
ALLOCATION DE LA MÉMOIRE PHYSIQUE
Dans un système multiprogrammé, la mémoire centrale abrite d'une part le code et
les données du système d'exploitation, d'autre part le code et les données des
programmes utilisateurs. La mémoire est donc divisée en deux grandes zones, celle
réservée au système d'exploitation qui est généralement placé en mémoire haute
(depuis les adresses 0), en tous les cas toujours au voisinage du vecteur d'interrup-
tions, d'autre part celle réservée aux programmes des utilisateurs. Ainsi sous le système
Linux, 1 Go de mémoire centrale est réservée au système d'exploitation et 3 Go sont
dédiés aux utilisateurs.
Lorsqu'un utilisateur demande l'exécution d'un programme, le chargeur place en
mémoire centrale dans la zone réservée aux programmes utilisateurs le code et les
données de ce programme. Pour ce faire, le chargeur doit trouver une place libre suffi-
samment grande dans cette zone. Lorsque le processus correspondant a terminé son
exécution, la mémoire centrale doit être libérée. L'attribution de place mémoire aux
programmes utilisateurs et la libération de celle-ci en fin d'exécution des processus
s'appuient sur différentes stratégies d'allocation et de libération mémoire.
Les stratégies d'allocation / libération de la mémoire centrale peuvent être divisées
en deux grandes familles :
- pour la première famille, un programme est un ensemble de mots contigus insé-
cable. L'espace d'adressage du processus est linéaire. On trouve ici les méthodes
d'allocations en partitions variables que nous allons étudier en premier;
- pour la seconde famille, un programme est un ensemble de mots contigus sécable,
c'est-à-dire que le programme peut être divisé en plus petits morceaux, chaque
morceau étant lui-même un ensemble de mots contigus. Chaque morceau peut alors
être alloué de manière indépendante. On trouve ici les mécanismes de segmenta-
tion et de pagination .
13.2.1 Allocation contiguë de la mémoire physique
Notion de partitions variables
Dans cette méthode d'allocation, le programme est considéré comme un espace d'adres-
sage insécable. La mémoire physique est découpée en zones disjointes de taille
variable, adaptables à la taille des programmes, qui sont dénommées partitions .
Initialement, la zone réservée aux programmes utilisateurs est vide et constitue une
unique zone libre (figure 13.2). Au fur et à mesure des chargements de programmes,
la zone libre se réduit et à l'instant t, elle n'occupe plus qu'une fraction de la mémoire
centrale. Lorsque les exécutions des processus se terminent, la mémoire est libérée :
il se crée alors pour chaque zone libérée, une nouvelle zone libre. Finalement, la
mémoire centrale se retrouve constituée d'une ensemble de zones allouées et de zones
libres réparties dans toute la mémoire.
Les zones libres sont souvent organisées en une liste circulaire doublement chaînée
de zones libres. Chaque zone libre ZL est caractérisée par une adresse d'implanta-
tion (adresse(ZL)) en mémoire centrale et une taille en octet (taille(ZL)).
 
 
Search WWH ::




Custom Search