Vous êtes sur la page 1sur 44

Institut Supérieur d’Informatique 2009-2010

1ère année SIL Semestre 2

Systèmes d’Exploitation 1

Série TD N°1
Ordonnancement des processus (1)

Questions de cours :
1) Quel est le rôle d’un système d’exploitation ? Les interpréteurs de commandes et les compilateurs
font‐ils parties du système d’exploitation ?

2) Qu’est ce qu’un système multiprogrammé ? Un système de traitement par lots ? Un système en


temps partagé ?

3) Quel est le rôle d’un ordonnanceur ?

4) Dans le système UNIX, les véritables appels système sont effectués à partir

‐ d’un programme utilisateur


‐ d’une commande shell
‐ d’une procédure de la bibliothèque standard

Sont‐ils exécutés en mode superviseur ou en mode utilisateur ?

5) Pourquoi le partage de données pose des problèmes dans un système multiprogrammé en temps
partagé ? Le système UNIX permet‐il de contrôler les accès aux données partagées ? Qu’est‐ce
qu’une section critique ?

Exercice :
On considère 4 programmes P1, P2, P3 et P4 dont le comportement est définit comme suit :

Page 1
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Les 4 programmes sont lancés en même temps dans un système de multiprogrammation.


On considère que l’ordonnancement sur le processeur se fait selon une stratégie FCFS.

1. Remplir le diagramme d’exécution de ces 4 programmes selon le modèle ci-joint


(Pour vous aider on a coché les 4 premières cases du programme P1).

2. Calculer les temps suivants :


• Temps d’exécution de chaque programme
• Temps moyen d’exécution
• Temps d’attente pour chaque programme
• Temps moyen d’attente
Notations :
• Actif : utilise le processeur.
• Prêt : attente du processeur.
• E/S : phase d’entrée/sortie.
• Attente : attente d’un événement autre que la libération du processeur.

Note : Chaque case de ces diagrammes correspond à 10 ms

Page 2
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Systèmes d’Exploitation 1

Série TD N°1
Ordonnancement des processus (1)

Questions de cours :
1) Quel est le rôle d’un système d’exploitation ? Les interpréteurs de commandes et les compilateurs
font‐ils parties du système d’exploitation ?

Il gère et contrôle le matériel et offre aux utilisateurs une machine virtuelle plus simple d’emploi que
la machine réelle (appels systèmes). Non, les interpréteurs et les compilateurs ne font pas partie du
système d’exploitation.

2) Qu’est ce qu’un système multiprogrammé ? Un système de traitement par lots ? Un système en


temps partagé ?

Un système multiprogrammé gère le partage des ressources (mémoire, processeur, périphériques…)


de l’ordinateur entre plusieurs programmes chargés en mémoire. Dans un système de traitement par
lots, les processus sont exécutés l’un à la suite de l’autre selon l’ordre d’arrivée. Dans un système en
temps partagé, le processeur est alloué à chaque processus pendant au plus un quantum de temps.
Au bout de ce quantum, le processeur est alloué à un autre processus.

3) Quel est le rôle d’un ordonnanceur ?

L’ordonnanceur gère l’allocation du processeur aux différents processus. L’ordonnanceur d’UNIX est
un ordonnanceur à deux niveaux, à priorité qui ordonnance les processus de même priorité selon
l’algorithme du tourniquet.

4) Dans le système UNIX, les véritables appels système sont effectués à partir

‐ d’un programme utilisateur


‐ d’une commande shell
‐ d’une procédure de la bibliothèque standard

Sont‐ils exécutés en mode superviseur ou en mode utilisateur ?

A partir de la bibliothèque standard des appels système (instruction TRAP). Ils sont exécutés en mode
superviseur (Leurs codes constituent le système d’exploitation).

5) Pourquoi le partage de données pose des problèmes dans un système multiprogrammé en temps
partagé ? Le système UNIX permet‐il de contrôler les accès aux données partagées ? Qu’est‐ce
qu’une section critique ?

Un autre processus peut accéder aux données partagées avant qu’un processus n’est fini de les
utiliser (modifier). Oui, par exemple les sémaphores. Une suite d’instructions qui accèdent à des
objets partagés avec d’autres processus.

Page 1
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Exercice :
On considère 4 programmes P1, P2, P3 et P4 dont le comportement est définit comme suit :

Les 4 programmes sont lancés en même temps dans un système de multiprogrammation.


On considère que l’ordonnancement sur le processeur se fait selon une stratégie FCFS.

1. Remplir le diagramme d’exécution de ces 4 programmes selon le modèle ci-joint


(Pour vous aider on a coché les 4 premières cases du programme P1).

2. Calculer les temps suivants :


• Temps d’exécution de chaque programme
• Temps moyen d’exécution
• Temps d’attente pour chaque programme
• Temps moyen d’attente
Notations :
• Actif : utilise le processeur.
• Prêt : attente du processeur.
• E/S : phase d’entrée/sortie.
• Attente : attente d’un événement autre que la libération du processeur.

Page 2
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Note : Chaque case de ces diagrammes correspond à 10 ms

Temps d’exécution :

P1 : 90 ms
P2 : 120 ms
P3 : 50 ms
P4 : 80 ms

 Temps moyen d’exec : (90 + 120 + 50 + 80 ) / 4 = 85 ms

Temps d’attente

P1 : 330 – 90 = 240
P2 : 340 – 120 = 220
P3 : 310 – 50 = 260
P4 : 190 – 80 = 110

 Temps moyen d’attente : ( 240 + 220 + 260 + 110 ) / 4 = 207.5 ms

Page 3
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Systèmes d’Exploitation 1

Série TD N°2
Ordonnancement des processus (2)

Exercice 1 :
Cinq travaux A, B, C, D et E arrivent pratiquement en même temps dans un centre de calcul.
Leur temps d’exécution respectif est estimé à 10, 6, 2, 4 et 8 secondes.
Tracez le digramme de Gantt et déterminez le temps moyen de rotation pour chacun des
algorithmes d’ordonnancement suivants. Ne tenez pas compte du temps perdu lors de la
commutation des processus.
• Premier arrivé, premier servi FCFS (exécution dans l’ordre 10, 6, 2, 4, 8) ;
• Plus court d’abord SJF ;
• Tourniquet (quantum q = 4 s).

Exercice 2 :
On considère l’ensemble des processus suivants :

A- On suppose qu’on utilise un algorithme d’ordonnancement basé sur la priorité (les


priorités sont croissantes : 5 est le plus prioritaire). Donnez le diagramme de Gantt pour les
priorités données dans le tableau.

B- On voudrait que la priorité des processus soit dynamique au cours du temps. Ainsi, pour
calculer la priorité d’un processus, on utilise la formule suivante :

Remarque : Lors des calculs, on arrondira suivant l’exemple suivant : 3.5 ou 3.6 -> 4, 3.1 ou
3.4 -> 3.
1. Donnez le diagramme de Gantt sachant que la priorité est recalculée toutes les 5 minutes.
2. Calculez le temps d’attente moyen ainsi que le temps de rotation moyen.
3. Comparez les résultats obtenus par rapport à ceux obtenus avec l’algorithme de priorité
classique.

Exercice 3 :
On considère une architecture monoprocesseur sur laquelle on désire exécuter un ensemble de
4 programmes dont le comportement est défini comme suit :

Page 1
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Programme P1 : Date d’arrivée (0)


Calcul pendant 6 unités de temps
E/S pendant 3 unités de temps
Calcul pendant 3 unités de temps
E/S pendant 4 unités de temps
Calcul pendant 2 unités de temps
Programme P2 : Date d’arrivée (3)
Calcul pendant 2 unités de temps
E/S pendant 5 unités de temps
Calcul pendant 2 unités de temps
E/S pendant 2 unités de temps
Calcul pendant 1 unité de temps
Programme P3 : Date d’arrivée (5)
Calcul pendant 2 unités de temps
E/S pendant 4 unités de temps
Calcul pendant 1 unité de temps
Programme P4 : Date d’arrivée (8)
Calcul pendant 1 unité de temps
E/S pendant 1 unité de temps
Calcul pendant 1 unité de temps

On considère que l’on dispose d’un seul canal simple pour gérer un disque, et que l’ordre de
services des requêtes pour ce disque se fait selon une politique FCFS.
On considère que l’ordonnancement sur le processeur se fait selon une stratégie SRT.
1. Remplissez le diagramme de Gantt ci-dessous.
2. Calculez le nombre de commutations de contexte.
3. Calculez les :
a. Temps d’attente du processeur pour chaque programme ;
b. Temps d’exécution total de chaque programme.

Page 2
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Exercice 4 :
On considère 4 processus, A, B, C, D. On suppose que l’exécution des processus nécessite :
• Pour A : 7 unités de temps CPU, 3 unités de temps d'E/S et 5 unités de temps CPU.
• Pour B : 6 unités de temps CPU, 4 unités de temps d’E/S, 4 unités de temps CPU.
• Pour C : 5 unités de temps CPU.
• Pour D : 1 unité de temps CPU, 4 unités de temps d’E/S et 2 unités de temps CPU.
On suppose que :
• A se présente en premier, à l’instant 0,
• B se présente à l’instant 1,
• C se présente à l’instant 9,
• D se présente à l’instant 12.

Montrez comment les 4 processus vont utiliser le processeur dans chacun des cas suivants :

1) Chaque processus a son propre périphérique d’E/S et l’ordonnanceur fonctionne selon


Premier Arrivée Premier Servi FCFS (sans préemption).

2) Chaque processus a son propre périphérique d’E/S et l’ordonnanceur utilise l'algorithme du


tourniquet, avec un quantum de 5. Le temps de commutation est égal à 0. Donnez, dans ce
cas, les temps de rotation des processus A, B, C et D.

3) Les trois processus utilisent le même périphérique d'E/S dont la file d'attente est gérée par
l’algorithme FCFS. L’ordonnanceur du processeur utilise l'algorithme du tourniquet, avec un
quantum de 5. Le temps de commutation est supposé égal à 0.

Exercice 5 :

On considère trois (3) processus P1, P2, P3 dont les durées d’exécution sont respectivement 6,
4 et 8 unités de temps.
On fait l’hypothèse suivante : après 1 unité de temps d’exécution, le processus P2 crée un
processus fils (qu’on appellera P4) dont la durée d’exécution est de 3 unités de temps. Le
processus P4 après 2 unités de temps d’exécution crée à son tour un nouveau processus fils
P5, dont la durée d’exécution est de 2 unités de temps. On admet qu’un processus ayant
créé un fils doit se bloquer jusqu’à la terminaison de son processus fils.
En supposant que tous les processus sont gérés en utilisant l’ordonnancement «Round-Robin»
avec un quantum égal à 2 unités de temps, dessinez le digramme de Gantt .

Page 3
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Systèmes d’Exploitation 1

Série TD N°2 - Correction


Ordonnancement des processus (2)

Exercice 1 :

Algorithme FCFS  TRM = ((10-0)+(16-0)+(18-0)+(22-0)+(30-0)) / 5 = 19,2

A B C D E

0 10 16 18 22 30

Algorithme SJF  TRM = ((2-0)+(6-0)+(12-0)+(20-0)+(30-0)) / 5 = 14

C D B E A

0 2 6 12 20 30
Algorithme RR (quantum=4)
 TRM = ((10-0)+(14-0)+(24-0)+(28-0)+(30-0)) / 5 = 21,2

A B C D E A B E A

0 4 8 10 14 18 22 24 28 30

Page 1
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Exercice 2 :

Priorité Statique  TRM = ((28-10)+(29-3)+(41-0)+(51-0)) / 4 = 34


 TAM = ((18-18)+(26-8)+(41-15)+(51-10)) / 4 = 21,25

P2 P3 P4 3 P2 P1

0 3 10 28 29 41 51

Priorité Dynamique  TRM = ((30-0)+(47-0)+(41-3)+(51-10)) / 4 = 39


 TAM = ((30-0-10)+(47-0-15)+(41-3-8)+(51-10-18)) / 4 = 26,25

P2 3 P1 P4 P2 P3 P1 P4 P2 3 P4 2 P4

0 3 5 10 15 20 25 30 35 4041 45 47 51

0 3 5 10 15 20 25 30 35 40 4 45
1
P 2 2 5+10/10 0+5/10= 5+5/10=1 10+5/10 15+5/10=
1 =2 1 =2 2
P 3 3 2+12/15 7+12/15 12+12/15 0+7/15= 5+7/15=1 10+7/15= 15+7/15 0+2/15 0 5+2/15
2 =1 =1 =2 0 1 =1 =0 =0
P 4 0+6/8=1 5+6/8=1 10+6/8=2 15+6/8= 0+1/8=0 5+1/8=1 10+1/8= 15+1/8
3 3 1 =2
P 5 0+13/18= 5+13/18 10+13/18 15+13/18 0+8/18= 5+8/18 1 0+4/18
4 1 =1 =1 =2 0 =1 =0

Hypothèses :
- Au démarrage, les priorités des processus sont égales à leurs priorités statiques (indiquées dans le
tableau).
- Les priorités ne sont calculées que toutes les 5mn. Pour les autres temps, on prend la priorité
précédente.
- Le temps d’attente d’un processus est son temps d’attente depuis sa dernière exécution.
- Si on a le choix entre deux processus de même priorité, on choisit celui qui attend depuis le plus
longtemps.

Page 2
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Exercice 3 :

P1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
E/S x x x x x x x
Attent x x x x
e
Prêt x x x x x
Actif x x x x x x x x x x x

P2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
E/S x x x x x x x
Attent x x x x x
e
Prêt x x
Actif x x x x x

P3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
E/S x x x x
Attent x x x
e
Prêt
Actif x x x

P4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
E/S x
Attent x x x x x
e
Prêt
Actif x x

Nombre de commutations de contexte : 11

Page 3
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Exercice 4 :

1)

A B C A D B D

0 1 7 9 12 13 18 23 24 28 30

2) File d’attente

A B A C B D A B D

0 1 5 9 10 12 15 17 18 19 24 28 30

3)

File d’attente

A B D

12 15 18 22 26
File d’attente

A B A C B D A B D

0 1 5 9 10 12 15 17 18 19 24 28 30

Page 4
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Exercice 5
File d’attente

P1 P2 P3 P1 P4 P3 P1 P5 P3 P4 P3 P2

0 2 3 5 7 9 11 13 15 17 18 20 23

Page 5
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Systèmes d’Exploitation 1

Série TD N°3
Ordonnancement des processus (3)

Exercice : DS 2009

On considère un système monoprocesseur et les 4 processus P1, P2, P3 et P4 qui effectuent du calcul
et des entrées/sorties avec un disque selon les temps donnés ci‐dessous :

Processus P1 Calcul : 3 unités de temps

E/S : 7 unités de temps

Calcul : 2 unités de temps

E/S : 1 unité de temps

Calcul : 1 unité de temps

Processus P2 Calcul : 4 unités de temps

E/S : 2 unités de temps

Calcul : 3 unités de temps

E/S : 1 unité de temps

Calcul : 1 unité de temps

Processus P3 Calcul : 2 unités de temps

E/S : 3 unités de temps

Calcul : 2 unités de temps

Processus P4 Calcul : 7 unités de temps

A‐ On considère que l'ordonnancement sur le processeur se fait selon une politique FCFS :
Initialement, l'ordre de soumission des processus est P1, puis P2, puis P3, puis P4. On considère
que l’on dispose d’un seul canal pour gérer un disque, et que l’ordre de services des requêtes
pour ce disque se fait selon une politique FCFS. Donnez le diagramme de Gantt d'exécution des 4
processus P1, P2, P3 et P4 ? Donnez le temps moyen de rotation.
B‐ On considère maintenant que l'ordonnancement sur le processeur se fait selon une politique à
priorité préemptible. On suppose que la priorité (P1) > priorité (P3) > priorité (P2) > priorité (P4).

Page 1
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

On considère que l’on dispose d’un seul canal pour gérer un disque, et que l’ordre de services
des requêtes pour ce disque se fait selon une politique FCFS. Donnez le diagramme de Gantt
d'exécution des 4 processus P1, P2, P3 et P4 ?
Donnez le temps moyen de rotation.
C‐ On considère toujours que l'ordonnancement sur le processeur se fait selon une politique à
priorité préemptible. On suppose que la priorité (P1) > priorité (P3) > priorité (P2) > priorité (P4).
On considère maintenant que l'ordre de services des requêtes d'E/S pour le disque se fait
également selon la priorité des processus : le processus commençant une E/S est celui de plus
forte priorité parmi ceux en état d'attente du disque. Une opération d'E/S commencée ne peut
pas être préemptée. Donnez le diagramme de Gantt d'exécution des 4 processus P1, P2, P3 et
P4 ? Donnez le temps moyen de rotation.

Page 2
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Systèmes d’Exploitation 1

Série TD N°3 - Correction


Ordonnancement des processus (3)

Exercice : DS 2009
On considère un système monoprocesseur et les 4 processus P1, P2, P3 et P4 qui effectuent du calcul
et des entrées/sorties avec un disque selon les temps donnés ci‐dessous :

Processus P1 Calcul : 3 unités de temps


E/S : 7 unités de temps
Calcul : 2 unités de temps
E/S : 1 unité de temps
Calcul : 1 unité de temps

Processus P2 Calcul : 4 unités de temps


E/S : 2 unités de temps
Calcul : 3 unités de temps
E/S : 1 unité de temps
Calcul : 1 unité de temps

Processus P3 Calcul : 2 unités de temps


E/S : 3 unités de temps
Calcul : 2 unités de temps

Processus P4 Calcul : 7 unités de temps

A‐ On considère que l'ordonnancement sur le processeur se fait selon une politique FCFS :
Initialement, l'ordre de soumission des processus est P1, puis P2, puis P3, puis P4. On considère que
l’on dispose d’un seul canal pour gérer un disque, et que l’ordre de services des requêtes pour ce
disque se fait selon une politique FCFS. Donnez le diagramme de Gantt d'exécution des 4 processus
P1, P2, P3 et P4 ? Donnez le temps moyen de traitement (aussi appelé d’exécution, ou de rotation).

Page 1
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Le temps de traitement de P1 est de 24, celui de P2 est de 25, celui de P3 est de 23 et celui de P4 est
de 16. Le total est 88, soit une moyenne de 22 UT.

B‐ On considère maintenant que l'ordonnancement sur le processeur se fait selon une politique à
priorité préemptible. On suppose que la priorité (P1) > priorité (P3) > priorité (P2) > priorité (P4). On
considère que l’on dispose d’un seul canal pour gérer un disque, et que l’ordre de services des
requêtes pour ce disque se fait selon une politique FCFS. Donnez le diagramme de Gantt d'exécution
des 4 processus P1, P2, P3 et P4 ? Donnez le temps moyen de traitement (aussi appelé d’exécution,
ou de rotation).

Le temps de réponse de P1 est de 17, celui de P2 est de 21, celui de P3 est de 15 et celui de P4 est de
25. Le total est 78, soit une moyenne de 19,5 UT.

C‐ On considère toujours que l'ordonnancement sur le processeur se fait selon une politique à
priorité préemptible On suppose que la priorité (P1) > priorité (P3) > priorité (P2) > priorité (P4). On
considère maintenant que l'ordre de services des requêtes d'E/S pour le disque se fait également
selon la priorité des processus : le processus commençant une E/S est celui de plus forte priorité
parmi ceux en état d'attente du disque. Une opération d'E/S commencée ne peut pas être
préemptée. Donnez le diagramme de Gantt d'exécution des 4 processus P1, P2, P3 et P4 ? Donnez le
temps moyen de rotation.

Le temps de réponse de P1 est de 15, celui de P2 est de 21, celui de P3 est de 16 et celui de P4 est de
25. Le total est 77, soit une moyenne de 19,25 UT.

Page 2
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Systèmes d’Exploitation 1

Série TD N°4
Gestion de la mémoire : Allocation de mémoire contiguë

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:
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 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.
! !
Page!1!
! !
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

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 3:
On considère un système disposant de 16 Ko de mémoire centrale dont 4 Ko sont occupés par
la partie résidente du système d’exploitation.
Nous supposons que :
• La mémoire centrale utilise un partitionnement variable,
• La mémoire centrale utilise une stratégie de placement se basant sur l’algorithme premier
ajustement ou First Fit,
• L’ordonnancement sur la mémoire se fait selon FIFO,
• L’ordonnancement sur la CPU se fait selon l’algorithme du tourniquet (Round Robin) avec
un quantum q = 3ms,
• Chaque processus effectue un calcul suivi d’une E/S en utilisant son propre périphérique,
• Les processus arrivent conformément au tableau suivant :
Processus Instant (t) Taille (Ko) Temps CPU (ms) Durée E/S (ms)
A 0 3 9 2

B 4 5 6 9

C 6 5 4 4

D 8 4 2 6

E 10 1 4 3

F 12 1 5 1

G 16 1 3 2

H 18 3 3 8

Donnez le diagramme de GANT ainsi que les états d'occupation de la mémoire aux
différentes étapes de traitement de ces processus.

! !
Page!2!
! !
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Systèmes d’Exploitation 1

Série TD N°5
Gestion de la mémoire : Allocation de mémoire non contiguë

Exercice 1:
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 ?
Exercice 2:
Soit la table de pages suivante :
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

Exercice 3:
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.

Page 1
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

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 4:
On dispose d’un système doté d’une pagination à la demande, suivant deux algorithmes A1 et
A2, Au cours de son exécution, un programme accède successivement aux pages 1, 5, 2, 5, 1,
4, 1, 5, 3. Le système alloue à ce programme un espace de trois pages.
Avec l’algorithme A1, on constate que l’on a successivement en mémoire les pages suivantes
1 1 1 1 1 4 4 4 3
5 5 5 5 5 1 1 1
2 2 2 2 2 5 5
Avec l’algorithme A2, on constate que l’on a successivement en mémoire les pages
suivantes :
1 1 1 1 1 1 1 1 1
5 5 5 5 5 5 5 5
2 2 2 4 4 4 3

A.- A votre avis, lequel des deux algorithmes correspondrait à l’algorithme FIFO, et lequel
correspondrait à LRU ? Justifiez votre raisonnement.
B. – Déterminer dans chacun des cas le nombre de défauts de pages.

Exercice 5:
Le système dispose de 4 cases qui sont toutes occupées, le tableau ci-dessous donne, pour
chacune d’elles, la date en microsecondes du chargement de la page qu’elle contient, la date
en microsecondes du dernier accès à cette page et l’état des indicateurs de la case (Read et
Modified).
Case Chargement Accès R M
0 126 279 0 1
1 230 260 1 1
2 120 272 1 1
3 160 280 1 1

En justifiant votre réponse, donner quelle sera la page remplacée, pour chacun des 4
algorithmes de remplacement suivants FIFO, LRU, NRU (seconde chance).

Page 2
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Systèmes d’Exploitation 1

Correction TD N°5
Gestion de la mémoire : Allocation de mémoire non contiguë

Exercice 1:
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 ?
Taille Table de Pages = taille d’une entrée de la page * nombre de pages
- Taille d’une entrée : 1(bit de présence) + nbre de bits nécessaires pour adresser les
cases
o Nombre de cases : 32 Mo / 1 Ko = 225 / 210 = 215
o Nbre de bits nécessaire pour adresser les cases : 15 bits
o  taille d’une entrée = 16 bits
- Nombre de pages = 4 Go / 1 Ko = 232/210 = 222  
-  taille de la table de pages = 2 * 16 = 2 * 2 = 226 = 64 Mo
22 22 4

Exercice 2:
Soit la table de pages suivante :
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
1 page = 1Ko = 210 == offset sur 10 bits
142A
0001 0100 0010 1010
1 4 2 A

N° page = 5 offset = 2A

Page 1
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

@ physique : n° cadre = 1 offset = 2A


0000 0100 0010 1010
0 4 2 A

0AF1
0000 1010 1111 0001
0 A F 1

N° page = 2 offset = 2F1


@ physique : n° cadre = 8 offset = 2F1
0010 0010 1111 0001
2 2 F 1

Exercice 3:
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.
0 0 0 2 2 2 3 3 3 3 3 3
1 1 1 0 0 0 0 0 4 4 4
4 4 4 1 1 1 1 1 2 2
 défauts de page = 9
B.2- Si on utilise l’algorithme LRU et sachant que le système alloue à ce programme un
espace de 3 pages.
0 0 0 2 2 2 3 3 3 4 4 4
1 1 1 0 0 0 0 0 0 2 2
4 4 4 1 1 1 1 1 1 3
 défauts de page = 9

Page 2
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

B.3- Si on utilise l’algorithme Optimal et sachant que le système alloue à ce programme un


espace de 3 pages.
0 0 0 0 0 0 0 0 0 4 4 4
1 1 1 1 1 1 1 1 1 2 2
4 2 2 2 3 3 3 3 3 3
 défauts de page = 7
B.4- Si on utilise l’algorithme FIFO et sachant que le système alloue à ce programme un
espace de 4 pages.
0 0 0 0 0 0 3 3 3 3 2 2
1 1 1 1 1 1 0 0 0 0 3
4 4 4 4 4 4 1 1 1 1
2 2 2 2 2 2 4 4 4
 défauts de page = 10
B.5- Si on utilise l’algorithme LRU et sachant que le système alloue à ce programme un
espace de 4 pages.
0 0 0 0 0 0 0 0 0 0 0 3
1 1 1 1 1 1 1 1 1 1 1
4 4 4 4 3 3 3 3 2 2
2 2 2 2 2 2 4 4 4
 défauts de page = 8

Exercice 4:
On dispose d’un système doté d’une pagination à la demande, suivant deux algorithmes A1 et
A2, Au cours de son exécution, un programme accède successivement aux pages 1, 5, 2, 5, 1,
4, 1, 5, 3. Le système alloue à ce programme un espace de trois pages.
Avec l’algorithme A1, on constate que l’on a successivement en mémoire les pages suivantes
1 1 1 1 1 4 4 4 3
5 5 5 5 5 1 1 1
2 2 2 2 2 5 5
Avec l’algorithme A2, on constate que l’on a successivement en mémoire les pages
suivantes :
1 1 1 1 1 1 1 1 1
5 5 5 5 5 5 5 5
2 2 2 4 4 4 3
Page 3
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

A.- A votre avis, lequel des deux algorithmes correspondrait à l’algorithme FIFO, et lequel
correspondrait à LRU ? Justifiez votre raisonnement.
1er : FIFO 2ème : LRU
B. – Déterminer dans chacun des cas le nombre de défauts de pages.
1er : NDF = 7 2ème : NDF = 5
Exercice 5:
Le système dispose de 4 cases qui sont toutes occupées, le tableau ci-dessous donne, pour
chacune d’elles, la date en microsecondes du chargement de la page qu’elle contient, la date
en microsecondes du dernier accès à cette page et l’état des indicateurs de la case (Read et
Modified).
Case Chargement Accès R M
0 126 279 0 1
1 230 260 1 1
2 120 272 1 1
3 160 280 1 1

En justifiant votre réponse, donner quelle sera la page remplacée, pour chacun des 4
algorithmes de remplacement suivants FIFO, LRU, NRU (seconde chance).

FIFO  remplacer case 2 car sa date de chargement est inférieures à celles des autres
LRU  remplacer case1 car sa date d’accès est inférieure à celles des autres
NRU  remplacer case 0 car bit R = 0

Page 4
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Systèmes d’Exploitation 1

Série TD N°6
Gestion de la mémoire : Allocation de mémoire non contiguë (2)

Exercice 1: (EXAMEN PRINCIPAL 2009)


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

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

Page 1
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Exercice 2: (EXAMEN DE RATTRAPAGE 2009)


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 ?

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

Page 2
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Systèmes d’Exploitation 1

Série TD N°6
Gestion de la mémoire : Allocation de mémoire non contiguë (2)

Exercice 1: (EXAMEN PRINCIPAL 2009)


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

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

1. Combien de cadre de page contient la mémoire physique ?

Nb de cadres de pages = taille mem. Physique / taille d’un cadre


= 2*230 / 26 * 210 = 215 cadres

2. Quelle est la taille en bit d’une entrée de la table de pages ?

Taille d’une entrée de la TP = nb de bits pour coder un cadre + 1 bit de présence


= 15 + 1 = 16 bits

3. Quel est le nombre d’entrées dans la table de pages ?

Nb d’entrées dans la TP = Taille de la TP / taille d’une entrée de la TP


= 128 Ko / 16
= 27 * 210 * 23 / 24 = 216 entrées

4. Quelle est la taille de la mémoire virtuelle de cette architecture ?

Taille mem virtuelle = nb de pages * taille d’une page


= nb d’entrées de la TP * taille d’un cadre
= 216 * 216 = 232 octets = 4Go

5. Quelle est la taille en bit du bus d’adresse de cette architecture ?

Taille bus d’adresses = nb de bits nécessaires pour coder la mémoire virtuelle


= 32 bits

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.

Page 1
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

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

@logique = (n°page, offset)

@ Logique Taille page

N° de page

déplacement

Exemple1 Exemple2

@logique = 1024 @logique = 65540


taille page = 216 = 65536 taille page = 216 = 65536
n°page = 0 n°page = 1
déplacement = 1024 déplacement = 4

 n° cadre = 0 Pour la page 1, le bit de présence/absence =


 @ physique = 0*65536 + 1024 = 1024 0, d’où la page n’est pas chargée en mémoire.
On ne peut pas connaître l’adresse physique.

Page 2
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Exercice 2: (EXAMEN DE RATTRAPAGE 2009)


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 ?

Taille d’une page = 216(offset) octets = 64 Ko

2. Quelle est la taille de la mémoire physique ?

Taille mem physique = nb de cadres * taille d’un cadre


= 2nb de bits pour coder un cadre * taille d’un cadre
= 215 * 216 = 231 octets = 2Go

3. Quelle est la taille de la mémoire virtuelle ?

Taille mem virtuelle = nb d’entrées TP * taille d’une page


= 216 * 216 octets = 232 octets = 4 Go

4. Quelle est la taille (en bit) du bus d’adresse de ce système ?

Taille d’un bus d’adresses = nb de bits pour coder la mémoire virtuelle = 32 bits

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
@physique = (n° cadre, offset)

@ Physique Taille cadre

N° de cadre

déplacement

Page 3
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Exemple1 Exemple2

@physique = 33792 @physique = 66048


taille cadre = 216 = 65536 taille cadre = 216 = 65536
n° cadre = 0 n° cadre = 1
déplacement = 33792 déplacement = 512

 n° page = 3  n° page = 2
 @ logique = 3*65536 + 33792 = 230400  @ logique = 2*65536 + 512 = 131584

Page 4
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Systèmes d’Exploitation 1

Série TD N°7
Gestion de la mémoire : Allocation de mémoire non contiguë (3)

Exercice 1: Structure des programmes


La pagination à la demande est souvent conçue pour être transparente à l'utilisateur, qui
ignore souvent que la mémoire est paginée. Mais parfois, la performance du système pourrait
être améliorée si l'utilisateur (ou le compilateur) était au courant de la pagination à la
demande sous-jacente.
Considérons un programme JAVA dont la fonction est d'initialiser à 0 les éléments d'un
tableau de 128x128.
On suppose que le tableau est stocké en mémoire ligne par ligne :
A[0][0], A[0][1], …, A[0][127], A[1][0], A[1][1], …, A[127][127]
Les instructions suivantes sont exécutées :
int A[][] = new int[128][128];
for (int j=0; j<128; j++){
for (int i=0; i<128; i++){
A[i][j] = 0;
}
}
Avec des pages de 128 mots, quel est le nombre de défauts de pages provoqués par cette
exécution ? Comment pourrait-on le réduire ?
Exercice 2: Pagination
Soit un système d’exploitation gérant la mémoire au moyen du mécanisme de pagination
(gestion par blocs de taille fixe). La machine dispose de 600 unités de mémoire centrale
(RAM). Le système d’exploitation utilise des pages de 200 unités, il est configuré de façon à
pouvoir gérer 14 pages de swap (mémoire virtuelle simulée au moyen du disque dur).
Le système est soumis aux demandes d’accès décrites dans le tableau suivant.
1. Suivez le fonctionnement du système en supposant que les pages de la mémoire centrale
sont vidées dans l’ordre où elles ont été chargées (stratégie FIFO). Complétez le tableau
sachant que dans un système de gestion de mémoire par page, une adresse mémoire est
convertie en une adresse de page et un déplacement (offset) à l’intérieur de la page. Simulez
le fonctionnement en utilisant la première colonne de l’annexe 1. Notez a) le nombre de
défauts de pages (chargement d’une page de la mémoire virtuelle vers la mémoire centrale—
c’est-à-dire non présence en mémoire centrale de la page demandée) jusqu’à la douzième
demande (comprise) et b) le nombre total de défauts de pages.

Page 1
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

2. Suivez le fonctionnement du système avec une stratégie qui décharge prioritairement la


page utilisée il y a le plus longtemps. Utilisez la deuxième colonne de l’annexe 1. Notez le
nombre de défauts de pages (mêmes conditions que la question 1). Comparez les résultats
obtenus. Que s’est-il passé à partir de la douzième demande ?
3. La dernière simulation utilise une stratégie de déchargement qui sélectionne en priorité les
pages ayant le moins servi. En cas d’égalité, on utilise la stratégie de la question 2. Utiliser la
colonne 3 de l’annexe 1 pour effectuer la simulation. Afin de maintenir un compteur
d’utilisation des pages, le système maintient une liste (tableau horizontal colonne3).
Comptabilisez à nouveau les défauts de pages, comparez-les avec les résultats précédents.
Qu’en déduire ? Cette stratégie est rarement utilisée, pourquoi ?
4. Supposons que les demandes sont mises en attente et que l’ordre de traitement n’est pas
fondamental. Quelle serait la stratégie optimale ?
5. Refaire la question 2 en considérant une taille de page de 300 unités. Expliquez les
résultats. Utilisez l’annexe 2 pour simuler le système.
6. Que pensez vous d’une taille de page de 10 unités (justifier) ?
Conversions d’adresse= (page, offset) Mémoire Centrale
Demande
Adresse Page Offset Cadre Adresse
1 657 3 57 0 57
2 523 2 123 1 323
3 170 0 170 2 570
4 725
5 1133
6 145
7 190
8 658
9 573
10 56
11 598
12 888
13 1134
14 170
15 472

Page 2
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Systèmes d’Exploitation 1

Correction Série TD N°7


Gestion de la mémoire : Allocation de mémoire non contiguë (3)

Exercice 1: Structure des programmes


Le tableau étant stocké en mémoire ligne par ligne, un élément du tableau étant de taille 1 mot
(32 bits) et une page de taille 128 mots, le contenu de la mémoire virtuelle sera semblable à
celui-ci :
A[0][0]
Page0 A[0][1]

A[0][127]
A[1][0]
A[1][1]
Page1

A[1][127]

A[127][0]
Page127 A[127][1]

A[127][127]

Si on exécute le programme comme décrit dans l’exercice, et puisque les éléments du tableau
sont appelés en commençant d’abord par les colonnes ensuite par les lignes, les pages seront
appelées dans l’ordre suivant : page0, page1, …, page127, page0, page1, …, page127…
D’où, pour une mémoire physique de taille 128 cases, on aura 128*128 défauts de page.
Pour diminuer le nombre de défauts de page, on propose d’inverser les boucles for du
programme. Ainsi, quand une page est appelée, toutes les données qui sont dessus sont lues en
une fois, et on peut la supprimer sans avoir à la charger de nouveau. Ainsi, les pages sont
appelées dans l’ordre suivant : page0, page1, …, page127. Et le nombre de défaut de page
sera (quel que soit la taille de la mémoire physique) 128 DP.

Page 1
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Exercice 2: Pagination
1) Pour remplir le tableau suivant, on doit d’abord déterminer le couple (page, offset) pour
chacune des adresses logiques données. Pour cela, on divise l’adresse logique par la taille
d’une page. Le résultat est le numéro de page, et le reste est l’offset.

Conversions d’adresse= (page, offset) Mémoire Centrale


Demande
Adresse Page Offset Cadre Adresse
1 657 3 57 0 57
2 523 2 123 1 323
3 170 0 170 2 570
4 725 3 125 0 125
5 1133 5 133 0 133
6 145 0 145 2 545
7 190 0 190 2 590
8 658 3 58 1 258
9 573 2 173 2 573
10 56 0 56 0 56
11 598 2 198 2 598
12 888 4 88 1 288
13 1134 5 134 2 534
14 170 0 170 0 170
15 472 2 72 0 72

Ensuite, pour déterminer le couple (cadre, adresse), on doit utiliser l’algorithme FIFO pour
placer les pages dans la mémoire centrale. L’ordonnancement donne le résultat suivant :
4,1  0 3 0
2  200 2 1
3  400 0 2

5  0 5 0
200 2 1
6,7  400 0 2

0 5 0
8  200 3 1
400 0 2

Page 2
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

0 5 0
200 3 1
9  400 2 2

10  0 0 0
200 3 1
11  400 2 2

0 0 0
12  200 4 1
400 2 2

14  0 0 0
200 4 1
13  400 5 2

15  0 2 0
200 4 1
400 5 2

NDP 12 = 8 ; NDP total = 10

2)
4,1  0 3 0
2  200 2 1
3  400 0 2

8  0 3 0
5  200 5 1
6,7  400 0 2

0 3 0
11,9  200 2 1
10  400 0 2

12  0 4 0
200 2 1
400 0 2

0 4 0
200 2 1
13  400 5 2

Page 3
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

0 4 0
14  200 0 1
400 5 2

15  0 2 0
200 0 1
400 5 2

NDP 12 = 6 ; NDP total = 9

3)

4,1  0 3 0
2  200 2 1 3 2 0

3  400 0 2 2 1 1

8  0 3 0
5  200 5 1 3 2 0 5

7,6  400 0 2 3 1 3 1

0 3 0
11,9  200 2 1 3 2 0 5

10  400 0 2 3 3 4 1

12  0 4 0
200 2 1 3 2 0 5 4

400 0 2 3 3 4 1 1

13  0 5 0
15  200 2 1 3 2 0 5 4

14  400 0 2 3 4 5 2 1

NDP 12 = 6 ; NDP total = 7


Cette méthode donne un bon nombre de défauts de page, mais on ne peut pas l’appliquer, car
on doit maintenir un compteur pour chaque page logique, ce qui cause une grande perte
d’espace mémoire.

Page 4
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

4) Question de réflexion : si les demandes sont mises en attente, alors tous les algorithme
donneraient le même résultat : pour un ordre d’exécution donné, les pages existantes en
mémoire seront exécutées en premier, ensuite elles seront remplacées une à une par les pages
qui attendent dans la file d’attente. Si tous les algorithmes donnent le même résultat, alors il
faut choisir le plus simple, soit l’algorithme FIFO.

5) Pour une taille de page = 300, il faut recalculer les couples (page, offset).

Mémoire Secondaire
Demande
Adresse Page
1 657 2
2 523 1
3 170 0
4 725 2
5 1133 3
6 145 0
7 190 0
8 658 2
9 573 1
10 56 0
11 598 1
12 888 2
13 1134 3
14 170 0
15 472 1

L’ordonnancement pour l’algorithme LRU sera le suivant :

1  0 2 0
2  300 1 1

3  0 0 0
300 1 1

0 0 0
4  300 2 1

5  0 3 0
300 2 1

0 3 0
7,6  300 0 1

8  0 2 0
300 0 1

Page 5
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

0 2 0
9  300 1 1

10  0 0 0
11  300 1 1

12  0 2 0
300 1 1

0 2 0
13  300 3 1

14  0 0 0
300 3 1

0 0 0
15  300 1 1
NDP = 12

Le nombre de défauts de page augmente, car en diminuant le nombre de cases en mémoire,


nous avons moins de chance de trouver la page que nous utilisons.

6) Si une page a une taille de 10 unités (très petite par rapport à la taille du programme), alors
le programme sera très fragmenté, ce sui résultera en un grand nombre de pages, et donc de
défauts de pages.

 Conclusion : La taille d’une page dans une mémoire paginée ne doit être ni trop grande ni
trop petite : il faut choisir une taille qui soit optimale par rapport à la taille des programmes
usuels.

Page 6
Institut Supérieur d’Informatique 2009-2010
1ère année SIL Semestre 2

Systèmes d’Exploitation 1

Série TD N°8
Gestion des Entrées / Sorties

Exercice 1:
Soit un disque de 40 cylindres. Une demande de lecture du cylindre 11 arrive. Pendant
que la recherche est en cours, le pilote du disque reçoit respectivement de nouvelles requêtes
qui concernent les cylindres 1, 36, 16, 34, 9 et 12. Elles sont placées dans la table des requêtes
en attente qui contient la liste chaînée pour les différents cylindres. A la fin de la requête
courante (concernant le cylindre 11), le pilote doit choisir la requête suivante, c’est à dire
1,puis 36, puis 16, et ainsi de suite.
Indiquer pour chacun des algorithmes d’ordonnancement des requêtes suivants quel
est l’ordre des cylindres et quel est le nombre de cylindres parcourus :
1- FCFS
2- SSF
3- Scan (ou l’algorithme de l’ascenseur)
Exercice 2:
A- Soit un disque avec 200 cylindres, où les requêtes sont reçues dans l’ordre suivant :
55, 58, 39, 18, 90, 160, 150, 38, 184
La position de départ du bras est le cylindre 100. Calculer le nombre de cylindres parcourus
quand les algorithmes utilisés sont les suivants :
1- FCFS
2- SSF
3- Scan avec la direction de départ UP.
B- Expliquer brièvement dans quel cas est-ce que les algorithmes précédents donneraient une
meilleure performance :
1- Un processus lit 10,000 blocs avec des adresses de disque consécutives
2- Un processus lit 10,000 blocs avec des adresses de disque aléatoires
3- Un processus crée des processus fils qui lisent 10,000 blocs avec des adresses aléatoires
4- Les processus communiques les uns avec les autres en écrivant et en lisant des blocs sur le
disque.

   
Page  1  
   

Vous aimerez peut-être aussi