![]() |
Exercices dirigés1 Exercices sur la mémoire virtuelle1.1 Exercice 1 : Gestion d'une mémoire par zones
On se propose de définir des algorithmes de gestion par zones d'une mémoire. Cette mémoire est gérée par un allocateur qui
utilise les deux procédures ALLOUER_ZONE(T,A) et LIBERER_ZONE(T,A) où T est la taille de la zone et A l'adresse d'implantation
en mémoire de la zone. L'allocateur entretient une liste des zones non utilisées de la mémoire (appelées zones libres). Chaque
zone libre com
port
e un en-tête de deux mots qui contient la taille de la zone et l'adresse de la zone libre suivante dans la liste. On suppose
que cette liste est ordonnée suivant les adresses croissantes d'implantation en mémoire de ces zones. Pour que l'allocateur
puisse allouer une zone libre, il faut évidemment que cette zone soit de taille supérieure ou égale à celle qui est requise. D'autre
part, quand la taille de la zone libre est supérieure à la taille demandée, le résidu est récupéré et forme une nouvelle zone
libre.
1.1.1 Question 1
Représenter sous forme d'un schéma la structure de la liste des zones libres en mémoire.
1.1.2 Question 2
On suppose que l'algorithme d'allocation est "first fit", c'est-à-dire que la zone libre choisie est celle qui apparaît la
première dans la liste. Ecrire la procédure ALLOUER_ZONE.
1.1.3 Question 3
On suppose que l'algorithme d'allocation est "best fit", c'est-à-dire que la zone libre choisie est celle dont la taille est
la plus proche de celle demandée. Ecrire la procédure ALLOUER ZONE.
1.1.4 Question 4
A un instant t, la configuration de la mémoire est la suivante et on souhaite encore exécuter le
processus
P5 de taille égale à 500K. Que convient-il de faire ?
1.1.5 Question 5
On impose qu'il n'y ait pas de zones contiguës en mémoire. Lorsqu'une zone est libérée et qu'il s'avère qu'elle est contigüe
à une zone libre, elles sont fusionnées pour ne plus en former qu'une.
Ecrire la procédure LIBERER_ZONE.
1.2 Exercice 2 : Pagination1.2.1 Question 1
Décrivez le format d'une entrée de la
table des pages
d'un processus.
1.2.2 Question 2
Décrivez sous forme algorithmique les opérations réalisées lors d'un accès à une adresse virtuelle de type <n° de page, déplacement
dans la page>
1.2.3 Question 3Soit la liste des pages virtuelles référencées aux instants t = 1, 2,..., 11
3 5 6 8 3 9 6 12 3 6 10
1.2.4 Question 4Décrivez le principe de la pagination appliquée à la segmentation de la mémoire.
Comment s'effectue la traduction d'une adresse virtuelle ?
1.2.5 Question 5
On considère une mémoire segmentée paginée pour laquelle les cases en mémoire centrale sont de 4Ko. La mémoire centrale compte
au total 15 cases numérotées de 1 à 15. Dans ce contexte, on considère deux processus A et B.
Représentez sur un dessin les structures allouées (table des segments, tables des pages) et la mémoire centrale correspondant
à l'allocation décrite.
|