Exercices dirigés

1 Exercices sur la mémoire virtuelle

1.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 : Pagination

1.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 3
Soit 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
 
 
La mémoire centrale est composée de 4 cases initialement vides. Représentez l'évolution de la mémoire centrale au fur et à mesure des accès pour chacune des deux politiques de remplacement de pages FIFO et LRU. Notez les défauts de pages éventuels.
1.2.4 Question 4
Dé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.
  • Le processus A a un espace d'adressage composé de trois segments S1A, S2A et S3A qui sont respectivement de 8 Ko, 12 Ko et 4 Ko.
  • Le processus B a un espace d'adressage composé de deux segments S1B et S2B qui sont respectivement de 16 Ko et 8 Ko. Pour le processus A, seules les pages 1 et 2 du segment S1A, la page 2 du segment S2A et la page 1 du segment S3A sont chargées en mémoire centrale respectivement dans les cases 4, 5, 10, 6. Pour le processus B, seules les pages 2 et 3 du segment S1B et la page 1 du segment S2B sont chargées en mémoire centrale respectivement dans les cases 11, 2 et 15. 
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.
 
 
Voir la correction
Mémoire virtuelle Exercices dirigés