Académique Documents
Professionnel Documents
Culture Documents
Système d’Exploitation 1
Correction du TD N°2
Système d’Allocation de la Mémoire Principale
1.1. Pour chacun des algorithmes d’allocation de la mémoire centrale, First fit,
Next fit, Best fit et Worst fit donner les partitions où seront logés successives deux
processus P1 et P2 de taille respectivement 50 et 40 :
Rappel sur les algorithmes d’allocation de la mémoire par partitions variables :
First-fit : Cet algorithme cherche pour un processus la partition convenable (càd
la partition dont la taille est supérieure ou égale à celle du processus) en
parcourant toujours la liste chaînée des partions libres de tête à queue
Next-fit : Cet algorithme cherche la partition convenable en poursuivant la
recherche à partir de la partition qui vient après la dernière partition allouée. Si
la recherche atteint la queue de la liste alors la recherche est reprise à partir de
la tête de liste (recherche circulaire)
Best-fit : Cet algorithme parcoure toute la liste chaînée de tête à queue et alloue
au processus la plus petite partition qui peut l’accommoder
Worst-fit : Cet algorithme parcoure toute la liste chaînée de tête à queue et
alloue au processus la plus grande partition qui peut l’accommoder
First Fit Next Fit Best Fit Worst Fit
1.1. Si la taille d’une partition libre est inférieure à 16 alors celle-ci est
considérée comme un résidu. Calculer le résidu total engendré par chacun des
algorithmes :
On considère une partition comme un résidu quand sa taille est insuffisante pour
accommoder le plus petit processus qui peut exister, dans cet exemple une
partition de taille inférieure à 16 est considérée comme un résidu
Algorithme First Fit Next Fit Best Fit Worst Fit
Résidu 20 14 8 0
OPT=5 LRU=6
T 1 0 3 4 5 3 1 2 4 t 1 0 3 4 5 3 1 2 4
3 0 - * 4 5 2 4 3 0 * 5 2
4 3 - * - - * 4 3 * * 4
5 4 1 - - * 5 4 1 4 1
FIFO=7 FINUFO=7
T 1 0 3 4 5 3 1 2 4 t 1 0 3 4 5 3 1 2 4
3 0 * 4 1 3 0 * 4 1
4 3 * 5 2 4 3 * 5 2
5 4 1 3 4 5 4 1 3 4
FIFO=9 FINUFO=9
1 2 3 4 1 2 5 1 2 3 4 5 1 2 3 4 1 2 5 1 2 3 4 5
1 1 4 5 * 1 1 4 5 *
2 2 1 * 3 2 2 1 * 3
3 3 2 * 4 3 3 2 * 4
FIFO=10 FINUFO=7
1 2 3 4 1 2 5 1 2 3 4 5 1 2 3 4 1 2 5 1 2 3 4 5
1 1 * 5 4 1 1 * * 4
2 2 * 1 5 2 2 * *
3 3 2 3 3 5 *
4 4 3 4 4 3
5.1. Donner l’allocation chronologique des cadres par les pages virtuelles qui est
assurée par chacun des algorithmes : OPT, FIFO, LRU et FINUFO :
1 2 3 11 12 13 14 4 13 3 15 1 12 2 11 4 15 3 14 1 13
1 1 - * 2 1 1
OPT
2 2 4 - * 4
6
3 3 - * - * 3
11 11 - - * 13 13
OPT 12 12 - - * 12
7 13 13 13 15 * 15
14 14 - - * 14
1 2 3 11 12 13 14 4 13 3 15 1 12 2 11 4 15 3 14 1 13
1 1 4 * 3 3
FIFO
2 2 1 * 1
7
3 3 * 2 2
11 11 15 * 15
FIFO 12 12 * 11 11
6 13 13 * * 13
14 14 * 14
1 2 3 11 12 13 14 4 13 3 15 1 12 2 11 4 15 3 14 1 13
1 1 4 2 1 1
LRU
2 2 1 3 3
9
3 3 * 4 4
11 11 15 * 15
LRU 12 12 * 14 13
8 13 13 * 14 14
14 14 11 11
1 2 3 11 12 13 14 4 13 3 15 1 12 2 11 4 15 3 14 1 13
1 1 4 * 1 1
FINUFO
2 2 1 3 3
8
3 3 * 2 4
11 11 15 * 15
FINUFO 12 12 * 14 14
7 13 13 * * 13
14 14 11 11
5.2. Refaire le même exercice dans le cas d’un système d’allocation qui peut
allouer un nombre variable de cadres aux processus et utilisant un algorithme de
remplacement de cadres global :
1 2 3 11 12 13 14 4 13 3 15 1 12 2 11 4 15 3 14 1 13
1 1 - - * - * 13 13
OPT
2 2 - - * 14 14
4
3 3 - * - * 3
11 11 - - * 11
OPT 12 12 - - * 12
7 13 13 - * 15 * 15
14 14 4 - * 4
1 2 3 11 12 13 14 4 13 3 15 1 12 2 11 4 15 3 14 1 13
1 1 4 * 4
FIFO
2 2 15 * 15
7
3 3 * 1 * 1
11 11 2 2
FIFO 12 12 * 11 11
7 13 13 * 3 3
14 14 * 13 13
1 2 3 11 12 13 14 4 13 3 15 1 12 2 11 4 15 3 14 1 13
1 1 4 11 11
LRU
2 2 15 * 15
8
3 3 * * 3
11 11 1 14 14
LRU 12 12 * 1 1
8 13 13 * 4 4
14 14 2 13 13
1 2 3 11 12 13 14 4 13 3 15 1 12 2 11 4 15 3 14 1 13
1 1 4 * 4
FINUFO 15
2 2 15 *
7
3 3 * 11 11
11 11 1 * 1
FINUFO 12 12 * 3 3
8 13 13 * 14 14
14 14 2 13 13
Donc la taille maximale d’un segment est 32 pages de 2 Kilo octets chacune, soit
64 Kilo octets
• Quel est le nombre maximal d’entrées par table de page :
A chaque processus peut correspondre au maximum 16 segments (Bits 16 à 19 dans
une adresse virtuelle). Chaque segment est décrit par une table de page dont
chaque entrée contient l’adresse de la table de page associée à ce segment et sa
taille. Comme un segment peut être composé de 32 pages au maximum, cela
correspond aussi au nombre maximum d’entrées par table de page
6.2. Illustrer avec un schéma comment ce système translate les adresses logiques
en adresses physiques et en précisant comment il détecte les erreurs d’adressage
6.4. Illustrer
avec un schéma la mémoire logique du processus et son implantation
en mémoire physique :
La mémoire logique du processus est composée de trois segments 0(CS-Code
Segment), 1(DS-Data Segment) et 2(SS-Stack Segment) composés respectivement
de 5,3 et 2 pages dont seules les pages 0 et 2 du segment 0, les pages 0 et 1 du
segment 1 et la page 1 du segment 2 sont présentes en mémoire physiques
respectivement dans les cadres 5,7,2,3 et 21
7.4. Etant donnée les cadres réservés à deux processus de PID 1001 et 1005
comme c’est indiqué dans la tables des pages inversée ci-dessous :
Numéro
PID
de page
1000
1001 0
1001
1005 1
1002
1001 2
1003
1005 0
1004
1005 2
Expliquer comment est réalisée la translation d’adresses logiques en adresses
physiques :
Pour translater une adresse logique en adresse physique on récupère le numéro de
la page logique (les 12 bits à gauche) à partir de l’adresse logique, ensuite il faut
chercher dans la table de page inversée le couple (PID, Page), ou PID est
l’identificateur du processus qui tente d’accéder à cette adresse logique. Une fois
ce couple a été trouvé, l’index de son entrée dans la table remplace le numéro de
la page dans l’adresse logique pour former l’adresse physique
7.5. Pour chacun des deux processus de 1001 et 1005, déterminer l’adresse
physique correspondante à chacune des adresses logiques suivantes : 0x0004C7,
0x0014C7, 0x0024C7
Adresse physique
PID-Processus
1001 1005
Adresse logique
0x0004C7 0x3E84C7 0x3EB4C7
0x0014C7 0x3EA4C7 0x3E94C7
0x0024C7 Défaut de page 0x3EC4C7