Vous êtes sur la page 1sur 6

INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE

SYSTEME D’EXPLOITATION

TD3 : Gestion de la Mémoire Non-Contiguë

Exercice 1 : Adressage

1. Quelle est la taille de l’espace d’adressage du processus P1 ?


Réponse : Le processus occupe 6 pages référencées de 0 à 5. La taille d’une page est de 1 Ko ainsi
l’espace d’adressage du processus a une taille strictement supérieure à 5Ko et inférieure ou égale à
6Ko Mais occupe en mémoire paginée 6Ko.
2. De combien de mémoire vive dispose ce système ?
Réponse : Etant donnée 8 cases ou cadre de page en mémoire physique et qui ont la même taille que la
page ainsi on dispose de 8*1Ko soit 8Ko de mémoire physique.
3. Quelle est la taille de mémoire réelle occupée actuellement par P1 ?
Réponse : Les pages de P1 sont 6 mais seulement 5 pages sont déjà placé et une page la numéro 4 n’est
pas encore placé en mémoire donc la taille occupée par P& en mémoire centrale est de 5Ko.
4. Soit l’adresse virtuelle 2801 du processus. Exprimer celle-ci (en décimal) sous la forme (N° de page,
Déplacement) dans l’espace d’adressage virtuel du processus P1.
Réponse : L’adresse logique 2801 du processus et exprimée en décimal pour la traduire en adresse
paginée on divise l’adresse par la taille de la page pour savoir à quelle page appartient cette adresse
le reste de la division euclidienne de l’adresse par la taille de la page correspond au déplacement dans
la page ainsi désignée. 2801/1024=2 et le reste c’est 753. (2*1024) +753. Ainsi l’adresse paginée
correspondant à l’adresse logique 2801= (2,753).
5. Exprimer l’adresse réelle (en décimal) correspondante à l'adresse virtuelle 2801 sous la forme (N°
de case, Déplacement).
Réponse : L’adresse réelle correspondante à l’adresse logique 2801 du processus et exprimée en
décimal est obtenue en remplaçant, le numéro de page par le numéro de case correspondant dans la
table de page ainsi selon la table de page la page 2 est placé dans la case 7 de la mémoire ainsi l’adresse
physique est (7,753) calculée comme suit : 7*1024+753
6. Que se passe il, si P1 génère l'adresse virtuelle 5052 ?
Réponse : l’adresse virtuelle 5052 correspond à l’adresse paginée (4,956) puisque 5052/1024=4 et le
reste = à 956. En se référant à la table de page la page 4 n’est pas chargée en mémoire physique ainsi
cette référence provoque un défaut de page.
7. Que se passe-t-il, si P1 génère l'adresse virtuelle 7003 ?
Réponse : l’adresse virtuelle 7003 correspond à l’adresse paginée (6,859) puisque 7003/1024=6 et le
reste = à 859. En se référant à la table de page la page n°6 n’existe pas dans l’espace d’adressage du
processus puisque les pages du processus vont de 0 à 5 ainsi il s’agit dans ce cas d’une erreur
d’adressage qui va générer un déroutement (Trap).

1
Exercice 2 : Segmentation

Adresse segmentée (2,12) Adresse segmentée (0,200)


Segement 2 : Début (Base) = 90, Taille 100 Segement 0 : Début (Base) = 219, Taille 600
Fin segement : Base + taille -1 =90+100-1=189 Fin segement :Base + taille -1 =219+600-1=818
Déplacement (offset)=12, Déplacement (offset)=200
Adresse physique (2, 12) devient 90+12=102 Adresse physique 219+200=419

Adresse segmentée (1,2300) Adresse segmentée (3,0)


Segement 1 : Début (Base) = 2300 Taille 14 Segement 3 : Début (Base) = 1323 Taille 580
219<=419 <=818 Fin segement :Base + taille -1 = 1323+580 -1=1902
Fin segement :Base + taille -1 =2300+141=2313 Deplacement (offset)=0
Déplacement (offset)=2300 Adresse physique 1323+0=1323 (valide)
Adresse physique 2300+2300=4600 1323<=1323<=1902
2300 < 2313 <<4600 ERREUR d’adressage

Adresse segmentée (4,96) Adresse segmentée (3,100)


Segement 4 : Début (Base) = 1952 Taille 96 Segement 3 : Début (Base) = 1323 Taille 580
Fin segement :Base + taille -1 = 2048 > 2047
1952+96 -1=2047 Fin segement :Base + taille -1 = 1323+580 -1=1902
Deplacement (offset)=96 Deplacement (offset)=100
Adresse physique 1952+96=2048 (invalide) Adresse physique 1323+100=1423 (valide)
1423<=1902 (valide)

Adresse segmentée (4,120)


Segement 4 : Début (Base) = 1952 Taille 96
Fin segement :Base + taille -1 =
1952+96 -1=2047
Deplacement (offset)=120
Adresse physique 1952+120=2072 (invalide)
2072 > 2047 (Invalide)

2
Exercice 3 : Algorithme de remplacement

Astérisque indique que le bit utilisé est 1


L’horloge protège du remplacement les pages fréquemment utilisées en mettant à 1 le
bit de référence
Fautes de page: LRU = 3+4, FIFO = 3+6 , Horloge = 3+5

3
Exercice 4 : Segmentation paginée

1. Espace d'adressage virtuel du processus A


Comme la mémoire est segmentée paginée, la taille des pages du processus A est identique à celle des
blocs de la mémoire centrale, c'est-à-dire 4 Ko. On a donc 2 pages pour le segment S1A, 3 pages pour
le segment S2A et 1 page pour le segment S3A

Espace d'adressage virtuel du processus B


Comme la mémoire est segmentée paginée, la taille des pages du processus B est identique à celle des
blocs de la mémoire centrale, c'est-à-dire 4 Ko. On a donc 4 pages pour le segment S1B et 2 pages pour
le segment S2B

2. Adresses linéaires vs. adresses virtuelles et adresses réelles

Comme chaque bloc fait 4 Ko, un bloc correspond à : 1024 * 4 = 4096 octets

4
Adresse linéaire 4098 du processus A
L'adresse se trouve en bloc : 4098 div 4096 + 1 = 2
D'après la table des segments, le bloc 2 se trouve dans le segment S1A et dans le segment S2A.
Le décalage est de : 4098 mod 4096 = 2
On a donc les adresses virtuelles possibles sont les suivantes :
Segment S1A, page 2, décalage 2 et Segment S2A, page 2, décalage 2
D'après la table des segments, les pages sont valides et correspond à la case 5 et 10.
L'adresses réelles correspondantes sont donc :
case 5, décalage 2: 4096 * 4 + 2 = 16386 et
case 10, décalage 2: 4096 * 9 + 2 = 36 866

Adresse linéaire 10292 du processus A


L'adresse se trouve en bloc : 10292 div 4096 + 1 = 3
D'après la table des segments, le bloc 3 se trouve dans le segment S2A .
Le décalage est de : 10292 mod 4096 = 2100
On a donc l'adresse virtuelle suivante : segment S2A, page 2, décalage 4
D'après la table des segments, la page est invalide (défaut de page).
On ne peut donc déterminer une adresse réelle.

Adresse linéaire 16389 du processus A


L'adresse se trouve en bloc : 16389 div 4096 + 1 = 5
D'après la table des segments, le bloc 5 se trouve dans aucun segment
16389 > Taille (segments: S1A= 1024*8 = 8192, S2A= 1024*12 = 12 288, S3A= 1024*4 = 4096)
On ne peut donc déterminer une adresse réelle. ERREUR D’ADRESSAGE

5
Adresse linéaire 8212 du processus B
L'adresse se trouve en bloc : 8212 div 4096 + 1 = 3
D'après la table des segments, le bloc 3 se trouve dans le segment S1B
Le décalage est de : 8212 mod 4096 = 20
On a donc l'adresse virtuelle suivante : segment S1B, page 3, décalage 20
D'après la table des segments, la page est valide et correspond à la case 2.
L'adresse réelle est donc : case 2, décalage 20 --> 4096 * 1 + 20 = 4116

Exercice 5 :

Étant donné que c’est un tableau d’entiers à deux dimensions de 128 lignes et de 128 colonnes.
Si on suppose qu’un mot mémoire est de 2 octets, chaque ligne occupe 128 mots soit une page.
Le tableau devrait être stocké au total sur 128 pages de 128 mots chacune. La boucle
d’initialisation tel qu’elle est décrite parcourt le tableau colonne par colonne ainsi pour
parcourir une colonne 128 références différentes à des pages différentes sont effectués si la
mémoire ne peux contenir plus d’une page de ce tableau à la fois l’initialisation de chaque
colonne engendrera 128 défauts de page multiplié par le nombre de ligne ceci engendre
128*128 défauts de page.
Si on inverse l’ordre de parcourt des cases du tableau ligne par ligne au lieu de colonne par
colonne ce nombre sera réduit à 128 défauts de page maximum un qui aura lieu quand on passe
d’une ligne à une autre du tableau.

Vous aimerez peut-être aussi