Vous êtes sur la page 1sur 9

Série d'exercices 3

Questions de cours :
1. Qu'est-ce qu'un gestionnaire de mémoire et quel est son rôle ?
2. Quelles sont les types d'allocation de mémoire ainsi que les différences entre eux ?
3. Que signifient les termes fragmentation, défaut de page et mémoire virtuelle ?
4. Quel est le principe de la pagination à la demande ?

Exercice 1
Soit une mémoire centrale utilisant la technique d’allocation contiguë par
partitionnement fixe. Cette mémoire est composée de 5 partitions P1, P2, P3, P4 et P5.
Ces partitions ont pour tailles respectives 100, 500, 200, 300 et 600 KO. Soient 4
processus A, B, D de tailles respectives 212, 417, 112 et 426 KO.
Donner les différents états de la mémoire centrale pour charger les 4 processus A, B,
C et D (dans l’ordre) en utilisant les algorithmes d’allocation suivants :
a- First Fit b- Best Fit c- Worst Fit d- Next
Fit

Exercice 2
On considère un système dont l'espace mémoire usager compte 1MO. On choisit la
multiprogrammation à partitions variables sans va-et-vient pour ce système.
On suppose la chronologie suivante pour notre système.

Instant t Événement
t=0 A (300, 55) arrive
t = 10 B (400, 35) arrive
t = 30 C (500, 35) arrive
t = 40 D (300, 105) arrive
t = 50 E (200, 35) arrive
t = 60 F (100, 55) arrive
t = 70 G (400, 35) arrive
t = 90 H (700, 35) arrive
t = 110 I (200, 25) arrive
t = 120 J (400, 45) arrive

81
Exercices Série d'exercices 3

Bien entendu, un processus qui ne peut pas être chargé en mémoire est placé sur une file
d'attente (File de haut niveau). La première ligne du tableau signifie que :
- le processus A arrive à l’instant 0,
- la taille de son espace logique est de 300 K et
- lorsque le processus A est chargé en mémoire centrale, il y séjournera (en mémoire
centrale) pendant exactement 55 unités de temps.
1) Donnez les états successifs d'occupation de la mémoire si :
 Le répartiteur de haut niveau fonctionne selon PAPS et le mode d'allocation des
trous utilise l’algorithme premier ajustement (First Fit).
 Le répartiteur de haut niveau fonctionne selon PAPS et le mode d'allocation des
trous utilise l’algorithme pire ajustement (Worst Fit).

Exercice 3
Soit un système d’exploitation, qui utilise l’allocation contiguë par partition variable.
On considère à l’instant T l’état suivant de la mémoire centrale (les zones hachurées
sont libres):
A B C D E F
(150Ko) (400Ko) (100Ko) (350Ko) (200Ko) (150Ko)

100Ko 300Ko 200Ko 500Ko 600Ko


A) Représenter l’évolution de la mémoire centrale, en fonction de l’arrivée des
processus K, L, M et O, selon cet ordre : K (200 Ko), L (450 Ko), M (250 Ko) et O
(50 Ko) :
1. en utilisant la stratégie d’allocation First Fit
2. en utilisant la stratégie d’allocation Best Fit
B) Nous désirons choisir un moyen de mémorisation des parties libres et parties
occupées de la mémoire, ainsi qu’elle était représentée avant l’arrivée des nouveaux
processus.
1. Donner la table de bits correspondant à la répartition précédente, en
supposant que l’unité d’allocation est le 50Ko.
2. Soit une représentation des parties libres/occupées sous la forme d’une liste
chaînée, dont chaque nœud contient un bit d’état (L/O), la taille de la partition,
et un pointeur sur la prochaine partition. Représenter la liste chaînée
Exercices Série d'exercices 3

correspondant à la répartition précédente (unité d’allocation : 50Ko).


3. Nous désirons charger le processus P (400Ko) dans la mémoire selon la
stratégie d’allocation First Fit.
a. Représenter l’état de la mémoire suite au chargement de P.
b. Décrire les étapes nécessaires pour localiser l’emplacement adéquat
du nouveau processus dans la mémoire en utilisant :
i. La table de bits
ii. La liste chaînée
c. Comment proposez-vous de modifier la structure de la liste chaînée de
manière à rendre la mise à jour de la mémoire encore plus rapide ?

Exercice 4
On dispose d’un espace adressable virtuel 4 Go (adressable sur 32 bits), et d’un espace physique
32 Mo (adressable sur 25 bits). Une page occupe 1 Ko (déplacement sur 10 bits).

Quelle est la taille de la table des pages (en octet), sachant qu’une case de la table de page
comporte 1 bit de présence et un n° physique de la page ?

Solution
Soit k = p + d le nombre de bits pour coder une adresse logique où p et d représente le
nombre de bits pour désigner le nombre et la taille des pages, respectivement.
De même, soit k' = p' + d le nombre de bits pour coder une adresse physique où p' et d
représente le nombre de bits pour désigner le nombre et la taille des cases, respectivement.
Taille de la table de pages = taille-entrée-table × nombre-entrées, sachant que :
1) nombre-entrées = nb-pages = 2p
2) taille-entrée-table = nb-bits-n°-case (i.e. p') + bit de présence
D'une part, on a :
Taille-MV = 2k octets = 4 Go = 22 × 230 octets = 232 octets  k = 32 bits
Taille-page = 2d octets = 1 Ko = 210 octets  d = 10  p = 22
D'autre part, on a :
Taille-MC = 2k' octets = 32 Mo = 25 × 220 octets = 225 octets  k' = 25 bits
Taille-case = taille-page = 2d octets = 1Ko = 210 octets  d = 10  p' = 15
Il en résulte que :
Taille de la table de pages = taille-entrée-table × nombre-entrées
Taille de la table de pages = (p' + 1) × 2p = 16 bits × 222 = 2 octets × 222 = 23 × 220 = 8Mo
Exercices Série d'exercices 3

Exercice 5
Soit la table de pages suivante :
N°-page N°-case
0 4
1 6
2 8
3 9
4 12
5 1

Sachant que les pages virtuelles et physiques font 1K octets, quelle est l'adresse mémoire
correspondant à chacune des adresses virtuelles suivantes codées en hexadécimal : 142A
et 0AF1
Solution
Soit k = p + d le nombre de bits pour coder une adresse logique où p et d représente le
nombre de bits pour désigner le nombre et la taille des pages, respectivement.
De même, soit k' = p' + d le nombre de bits pour coder une adresse physique où p' et d
représente le nombre de bits pour désigner le nombre et la taille des cases, respectivement.
On a : taille-page = 2d octets = 1 Ko = 210 octets  d = 10
Adresse-virtuelle (n°-page, déplacement)  adresse-physique (n°-case, déplacement)
@v1 = 142A = 0001010000101010 = (000101, 0000101010)  n°-page = 5  n°-case
= 1  @phy1 = (000001, 0000101010) = 0000010000101010 = 042A
@v2 = 0AF1 = 0000101011110001 = (000010, 1011110001)  n°-page = 2  n°-case
= 8  @phy2 = (001000, 1011110001) = 0010001011110001 = 22F1

Exercice 6
Considérons une architecture caractérisée par les hypothèses suivantes :
• Une table de page de taille 128Ko
• Chaque entrée de la table contient une référence vers un cadre de page et
un bit de présence/absence.
• La taille d’une page est de 64ko
• La taille de la mémoire physique est de 2Go
• Une adresse virtuelle indexe un octet
Exercices Série d'exercices 3

Répondez aux questions suivantes en justifiant toujours votre réponse :


1. Combien de cadre de page contient la mémoire physique ?
2. Quelle est la taille en bit d’une entrée de la table de pages ?
3. Quel est le nombre d’entrées dans la table de pages ?
4. Quelle est la taille de la mémoire virtuelle de cette architecture ?
5. Quelle est la taille en bit du bus d’adresse de cette architecture ?
6. Considérons les deux adresses logiques suivantes exprimées en décimal : 1024 et
65540. Donner si possible les adresses physiques correspondantes (exprimées en
décimal) en vous basant sur les 10 premières entrées de la table de pages données ci-
dessous.

N° de page N° de cadre de page Bit de présence/absence

0 0 1

1 2 0
2 8 0
3 2050 1
4 21054 1
5 31463 1
6 2187 0
7 260 0
8 1266 0
9 1024 1

Solution
Soit k = p + d le nombre de bits pour coder une adresse logique où p et d représente le
nombre de bits pour désigner le nombre et la taille des pages, respectivement.
De même, soit k' = p' + d le nombre de bits pour coder une adresse physique où p' et d
représente le nombre de bits pour désigner le nombre et la taille des cases, respectivement.
R1)
On a :
Taille-MC = 2k' octets = 2 Go = 2 × 230 octets = 231 octets  k' = 31 bits
Taille-case = taille-page = 2d octets = 64 Ko = 26 × 210 octets  d = 16  p' = 15
Nombre-cases = 2p' cases = 215 cases
R2)
Exercices Série d'exercices 3

taille-entrée-table = nb-bits-n°-case (i.e. p') + bit de présence


taille-entrée-table = 15 + 1 = 16 bits = 2 octets
R3)
On a : taille-table-de pages = taille-entrée-table × nombre-entrées-TP
nombre-entrées-TP = taille-table-de pages / taille-entrée-table
nombre-entrées-TP = 128 × 210 / 2 = 216 entrées
R4)
Taille-MV = nombre-pages × taille-page
Taille-MV = nombre-entrées-TP × taille-page = 216 × 64 ko = 216 × 26 × 210 octets = 232
octets = 22 × 230 octets = 4 Go
R5)
Taille-MV = 2k octets = 232 octets  k = 32 bits
R6)
taille-page = 2d = 64 ko = 26 × 210 octets = 216 octets  d = 16
Adresse-virtuelle (n°-page, déplacement)  adresse-physique (n°-case, déplacement)
@v1 = 1024 = 000…0000010000000000 = (000…000000, 0000010000000000)  n°-
page = 0  n°-case = 0 car le bit de présence = 1  @phy1 = (000…000000,
0000010000000000) = 000…0000010000000000 = 1024
@v2 = 65540 = 000…00010000000000000100 = (000…0001, 0000000000000100)  n°-
page = 1  n°-case = ? car le bit de présence = 0  défaut de page car la page n'est pas
chargée en MC

Exercice 7
On considère un système utilisant la technique de pagination et ayant les
caractéristiques suivantes :
- Une table de page ayant 216 entrées
- Chaque entrée de la table de pages est codée sur 16 bits. Une entrée contient
un numéro de cadre de page et un bit de présence/absence.
- Le déplacement (offset) est codé sur 16 bits
- Une adresse virtuelle indexe 1 octet
1. Quelle est la taille d’une page ?
2. Quelle est la taille de la mémoire physique ?
3. Quelle est la taille de la mémoire virtuelle ?
4. Quelle est la taille (en bit) du bus d’adresse de ce système ?
Exercices Série d'exercices 3

5. En considérant les huit premières entrées de la table de page représentée par


la figure suivante, donner les adresses logiques correspondantes aux adresses
physiques 33792 et 66048.

N° de cadre de page N° de page Bit de présence/absence


7 0 0
6 0 0
5 0 1
4 1 1
3 0 0
2 0 0
1 2 1
0 3 1

Solution
Soit k = p + d le nombre de bits pour coder une adresse logique où p et d représente le
nombre de bits pour désigner le nombre et la taille des pages, respectivement.
De même, soit k' = p' + d le nombre de bits pour coder une adresse physique où p' et d
représente le nombre de bits pour désigner le nombre et la taille des cases, respectivement.
R1)
taille-page = 2d octets = 216 octets = 64 Ko (le déplacement est codé sur 16 bits)
R2)
Taille-MC = 2k' octets = 2d+p' octets
D'une part, on a :
taille-entrée-table = nb-bits-n°-case (i.e. p') + bit de présence
p' = taille-entrée-table - bit de présence = 16 – 1 = 15 bits
D'autre part, on a :
Le déplacement est codé sur 16 bits  d = 16 bits
Il en résulte que :
Taille-MC = 2d+p' octets = 215+16 octets = 231 octets = 2 octets × 230 = 2 Go
R3)
Taille-MV = nombre-pages × taille-page
Taille-MV = nombre-entrées-table-pages × taille-page
Taille-MV = 216 × 216 octets = 232 octets = 22 × 230 octets = 4 Go
Exercices Série d'exercices 3

R4)
Taille-MV = 2k octets = 232 octets  k = 32 bits
R5)
Adresse-virtuelle (n°-page, déplacement)  adresse-physique (n°-case, déplacement)

@phy1 = 33792 = 000…00001000010000000000 = (000…000000, 1000010000000000)


 n°-case = 0  n°-page = 3 car le bit de présence = 1  @v1 = (000…000011,
1000010000000000) = 000…0000010000000000 = 230400

@phy2 = 66048 = 000…000010000001000000000 = (000…000001, 0000001000000000)


 n°-case = 1  n°-page = 2 car le bit de présence = 1  @v2 = (000…000010,
0000001000000000) = 000…0000100000001000000000 = 131584

Exercice 8
On s’intéresse aux systèmes utilisant la pagination
A- Détailler les algorithmes FIFO et LRU.
B- Au cours de son exécution, un programme accède successivement aux pages : 0, 1, 4,
2, 0, 1, 3, 0, 1, 4, 2, 3.
Donner la suite des pages présentes en mémoire ainsi que le nombre de défauts de pages
pour chacun des cas suivant :
B.1- Si on utilise l’algorithme FIFO et sachant que le système alloue à ce programme un
espace de 3 pages.
B.2- Si on utilise l’algorithme LRU et sachant que le système alloue à ce programme un
espace de 3 pages.
B.3- Si on utilise l’algorithme Optimal et sachant que le système alloue à ce programme
un espace de 3 pages.
B.4- Si on utilise l’algorithme FIFO et sachant que le système alloue à ce programme un
espace de 4 pages.
B.5- Si on utilise l’algorithme LRU et sachant que le système alloue à ce programme un
espace de 4 pages.

Exercice 9
Exercices Série d'exercices 3

On considère une mémoire centrale M1 constituée de 2 cases et une mémoire secondaire


M2. Soit P = (a, b, a, c, a, b, d, a, c, d) la suite des références aux pages a, b, c, d situées
initialement en M2.
1. Produire une trace sous forme d'une table qui illustre les défauts de page et le contenu
de M1 pour la suite des références P en utilisant la stratégie FIFO.
2. On définit la fréquence de succès s comme suit : s = 1- (F/L) où F est le nombre de
défauts de pages et L la longueur de la suite P. Calculer s dans le cas 1.
3. Répéter 1 en utilisant la stratégie LRU.
4. Répéter 1 et 2 en considérant une mémoire centrale de 3 cases.
5. Quel est l'effet de la taille de M1 sur s ?

Exercice 10
Refaire l'exercice précédent avec la suite P = (0, 1, 4, 2, 0, 1, 3, 0, 1, 4, 2, 3) avec une
mémoire à 3 cases puis à 4 cases.

Vous aimerez peut-être aussi