You are on page 1of 4

ED 4

Gestion de la mmoire
Exercice 1: Comprhension du mcanisme de mmoire virtuelle
Lespace dadressage logique (virtuel) dun programme en cours dexcution est une suite de pages. Soit le programme suivant: Adresse de dbut 1020 Dbut: I1: Charger le mot dadresse 6144 dans R0 I2: Empiler R0 I3: Appeler une procedure situe ladresse 5120 et placer ladresse de retour dans la pile I4: Dcrmenter le pointeur de pile 16 I5: Comparer la valeur en sommet de pile la constante 4 I6: Effectuer un branchement ladresse 5652 si galit Fin La taille des pages est de 512 octets, chaque instruction est code sur 4 octets. La pile est situe ladresse 8192 et progresse vers les adresses dcroissantes.

Question Donner la liste ordonne des pages utilises par ce programme.

Exercice 2: Adressage dans une mmoire virtuelle pagine


Soit le programme suivant:

Program Machin; chaine : array[0..1999] of Byte; i : integer; -- i sur 2 octets begin For i:= 0 to 1999 Do chaine[i]:= '*'; end; Les instructions de ce programme tiennent sur 20 octets. Ce programme est excut sur une machine mmoire pagine (taille de la mmoire relle = 1 MgaOctets et taille d'une page = 512 octets). Les instructions rfrence mmoire ont un champ adresse de 24 bits.

Question a) Donner la taille de l'espace adressable, le nombre de bits du dplacement, le nombre de bits d'une adresse virtuelle, le nombre de bits d'une adresse relle, le nombre de bits du numro de page virtuelle, le nombre de bits du numro de page relle, le nombre d'entres de la table des pages.
1

b) Le chargement de ce programme en mmoire engendre-t-il une fragmentation interne? Si non, pourquoi ? Si oui, la chiffrer.
Les pages de ce programme (numrotes 0,1,2 et 3) sont respectivement implantes en mmoire dans les pages relles 9, 17, 65 et 33.

c) Donner l'adresse virtuelle et l'adresse relle correspondante [en dcimal, sous la forme (numro de page, dplacement)] gnres lors de l'excution de chacune des instructions suivantes: chaine[10]:= '*'; chaine[515]:= '*'; chaine[1026]:= '*'; chaine[1999]:= '*'

Exercice 3: Mcanisme de gestion d'une mmoire virtuelle pagine


Dans un ordinateur, dont la mmoire est gre selon le principe d'une mmoire virtuelle pagine, une adresse a la structure suivante :
bit 31 N de page virtuelle 7 0 Dep. dans la page

A chaque processus est associe une table des pages dont la n-ime entre a la structure suivante :
bit V 31 30 29 28 24 23 0 M A Protec Add. relle page virtuelle n

avec : V : bit de validit = 1 si la page est rsidente ; = 0 sinon M : bit de modification = 1 si la page a t modifie depuis son chargement ; = 0 sinon A : bit de dernier accs ; mis 1 chaque accs une page. Remis 0 priodiquement par un processus systme Protec : mode de protection d'accs la page.

Question 1 Expliquer l'utilit de ces diffrents champs.

Question 2 Dcrire sous forme algorithmique les oprations ralises par le matriel lors du dcodage d'une adresse. (Faire abstraction de la gestion de la protection). Question 3 Quelle est a priori la taille de la table des pages d'un processus? Rappeler les techniques qui sont mises en oeuvre pour rduire cette taille. Question 4 Rappeler le fonctionnement des algorithmes de remplacement de pages FIFO (First In-First Out), cest dire lanciennet de chargement, et LRU (Least Recently Used), cest dire lanciennet de rfrence.
Soit la liste des pages virtuelles rfrences aux instants t = 1, 2, ,11: 3, 5, 6, 8, 3, 9, 6, 12, 3, 6, 10

Sachant quil ny a que 4 places en mmoire centrale, complter les deux tableaux suivants reprsentant les pages prsentes en mmoire centrale pour chaque politique.
Places en mmoire centrale Pages virtuelles rsidentes

1 3

2 3 5

3 3 5 6

4 3 5 6 8

5 3 5 6 8

10

11

1 2 3 4

Politique FIFO
Places en mmoire centrale Pages virtuelles rsidentes

1 3

2 3 5

3 3 5 6

4 3 5 6 8

5 3 5 6 8

10

11

1 2 3 4

Politique LRU

Comparer le nombre de dfauts de pages provoqus , dans lexemple, par les deux politiques. Commenter le rsultat trouv.

Exercice 4: Influence de la mmoire virtuelle sur la performance des programmes


On considre une mmoire virtuelle pagine dont les pages ont une taille de 2Ko et les mots sont de 32 bits. A; array(1..512,1..512) of in teger; --un tableau est stock ligne par ligne en mmoire Soient les deux programmes suivants: Cas 1 Cas2
For j=1..512 For i=1..512 A(i,j)=0 For i=1..512 For j=1..512 A(i,j)=0

Question On suppose quaucune page nest pralablement charge en mmoire (allocation la demande), comparer le nombre de dfauts de pages dans les deux cas.

Exercice 5
On souhaiterait rajouter une instruction vectorielle un processeur classique muni de registres 32 bits, dun chemin de donnes de 32 bits, dune mmoire adressable par 32 bits dadresse, dun gestionnaire de mmoire virtuelle fournissant des pages la demande pour chaque dfaut rencontr. On considre des pages de 4Ko et des vecteurs de nombres flottants simple prcision(4 octets) infrieurs 1024 lments.

Question On considre linstruction daddition vectorielle V1 <- V1 + V2 V1, V2 vecteur de taille n Identifier le problme crucial rsoudre pour implanter cette instruction et proposer une solution pour contourner cette difficult.

You might also like