Vous êtes sur la page 1sur 35

Université Blida 1

Faculté des Sciences


Département d’Informatique
Master SSI (Sécurité des Systèmes d’Informations)
Semestre 2

CORRIGÉ DE LA SÉRIE TD N°2 :


ORDONNANCEMENT DES

PROCESSUS

Mme AROUSSI

2019-2020

Disponible sur https://sites.google.com/a/esi.dz/informatiqueblida/


EXERCICE 1
En utilisant le tableau suivant qui présente la priorité, la durée d’exécution et
l’instant d’arrivé création de chaque processus:
Processus P1 P2 P3 P4 P5 P6 P7 P8 P9
Priorité 5 10 0 20 20 25 10 10 5
Durée d’exécution 7 20 12 10 20 10 18 36 15
Instant d’arrivé 22 24 0 0 28 4 30 4 10

1. Dans le cas des files d’attente multi-niveaux avec priorité,


1.1. Donner le schéma du système d’ordonnancement.
1.2. Donner la séquence d’ordonnancement dans le cas où la politique
d’ordonnancement de chaque file est (a) FCFS, (b) SJF ou (c) RR (quantum = 8).
1.3. Calculer le temps de réponse, le temps d’attente et le temps de résidence
2
pour chaque cas.
EXERCICE 1
Question 1: Algorithme d’ordonnancement des files d’attente multi-
niveaux avec priorité
1.1. Schéma du système d’ordonnancement
Queue Tête
max 31

25 ……… P6

20 ……… P5 P4

10 ……… P7 P2 P8

5 ……… P1 P9
3
min 0 ……… P3
Priorité
Processus 1.2.a. Algorithme d’ordonnancement des files d’attente multi-niveaux
(priorité; durée) avec priorité où la politique d’ordonnancement de chaque file est FCFS
F5 = [,,,,,P2, P9]
P1 22
(5; 7)
CPU 136 √
24
P2 CPU 96 √
(10; 20)
P3 CPU 148 √
(0; 12)
P4 CPU 20 √
(20; 10)
28
P5 CPU 48 √
(20; 20)
P6 4
CPU 14 √ F10 = [,,,,,P7, P2, P8]
(25; 10)
30
P7 CPU 114 √
(10; 18)
4
P8 CPU 28 CPU 76 √
(10; 36)
10 4
P9 CPU 129 √
(5; 15)
Temps
EXERCICE 1
Question 1: Algorithme d’ordonnancement des files d’attente multi-
niveaux avec priorité
1.2.a. La politique d’ordonnancement de chaque file est FCFS
Processus Séquence d’ordonnancement
P1 Début 22 AttCPU 129 CPU 136 Fin
P2 Début 24 AttCPU 76 CPU 96 Fin
P3 Début 0 AttCPU 136 CPU 148 Fin
P4 Début 0 CPU 4 AttCPU 14 CPU 20 Fin
P5 Début 28 CPU 48 Fin
P6 Début 4 CPU 14 Fin
P7 Début 30 AttCPU 96 CPU 114 Fin
P8 Début 4 AttCPU 20 CPU 28 AttCPU 48 CPU 76 Fin
P9 Début 10 AttCPU 114 CPU 129 Fin
Ordre d’exécution des processus:
5
P4 P6 P4 P8 P5 P8 P2 P7 P9 P1 P3 Processus
| | | | | | | | | | | |
0 4 14 20 28 48 76 96 114 129 136 148 Instants
EXERCICE 1
Question 1: Algorithme d’ordonnancement des files d’attente multi-
niveaux avec priorité
1.3. La politique d’ordonnancement de chaque file est FCFS
Temps de réponse (Trep) = Instant_Début_Exécution – Instant_Arrivé

Temps d’attente (Tatt) = Temps_AttCPU + Temps_AttES.

Temps de résidence (Tres)= Instant_Fin_Exécution – Instant_Arrivé

Vu qu’il n’y a pas des E/S dans les exécutions des processus (Temps_ATTES = 0) donc
Temps d’attente peut être déduit comme suit: = Tres – Tex (Tex: durée d’exécution). Cela
est utile pour vérifier vos calculs.

6
EXERCICE 1
Question 1: Algorithme d’ordonnancement des files d’attente multi-
niveaux avec priorité
1.3. La politique d’ordonnancement de chaque file est FCFS

Séquence d’ordonnancement Trep Tatt Tres


P1 Début 22 AttCPU 129 CPU 136 Fin 129 – 22 = 107 107 136 – 22 = 114
P2 Début 24 AttCPU 76 CPU 96 Fin 76 – 24 = 52 52 96 – 24 = 72
P3 Début 0 AttCPU 136 CPU 148 Fin 136 – 0 = 136 136 148 – 0 = 148
P4 Début 0 CPU 4 AttCPU 14 CPU 20 Fin 0–0=0 14 – 4 = 10 20 – 0 = 20
P5 Début 28 CPU 48 Fin 28 – 28 = 0 0 48 – 28 = 20
P6 Début 4 CPU 14 Fin 4–4=0 0 14 – 4 = 10
P7 Début 30 AttCPU 96 CPU 114 Fin 96 - 30 = 66 66 114 – 30 = 84
P8 D 4 AttCPU 20 CPU 28 AttCPU 48 CPU 76 F 20 – 4 = 16 16 + (48 – 28) = 36 76 – 4 = 72
P9 Début 10 AttCPU 114 CPU 129 Fin 114 – 10 = 104 104 7
129 – 10 = 119
Processus 1.2.b. Algorithme d’ordonnancement des files d’attente multi-niveaux
(priorité; durée) avec priorité où la politique d’ordonnancement de chaque file est SJF

F5 = [,,,,, P9, P1]


P1 22
(5; 7)
CPU 121 √
24
P2 CPU 86 √
(10; 20)
P3 CPU 148 √
(0; 12)
P4 CPU 20 √
(20; 10)
28
P5 CPU 48 √
(20; 20)
P6 4
CPU 14 √ F10 = [,,,,,P8, P2, P7]
(25; 10)
30
P7 CPU 66 √
(10; 18)
4
P8 CPU 28 CPU 114 √
(10; 36)
10 8
P9 CPU 136 √
(5; 15)
Temps
EXERCICE 1
Question 1: Algorithme d’ordonnancement des files d’attente multi-
niveaux avec priorité
1.La politique d’ordonnancement de chaque file est SJF
Les files d’attentes sont ordonnées selon la durée d’exécution, donc à
*t = 22, F5 = [,,,,, P9, P1] *t = 30, F10 = [,,,,,P8, P2, P7]
Séquence d’ordonnancement Trep Tatt Tres
P1 Début 22 AttCPU 114 CPU 121 Fin 92 92 99
P2 Début 24 AttCPU 66 CPU 86 Fin 42 92 62
P3 Début 0 AttCPU 136 CPU 148 Fin 136 136 148
P4 Début 0 CPU 4 AttCPU 14 CPU 20 Fin 0 10 20
P5 Début 28 CPU 48 Fin 0 0 20
P6 Début 4 CPU 14 Fin 0 0 10
P7 Début 30 AttCPU 48 CPU 66 Fin 18 18 36
P8 Début 4 AttCPU 20 CPU 28 AttCPU 86 CPU 114 Fin 16 76 110
9
P9 Début 10 AttCPU 121 CPU 136 Fin 111 111 126
Processus 1.2.c. Algorithme d’ordonnancement des files d’attente multi-niveaux avec
(priorité; durée) priorité où la politique d’ordonnancement de chaque file est RR (q = 8)

P1 22
(5; 7)
24
P2 CPU 56 CPU 80 100 √
(10; 20)
P3
(0; 12) Insérer au début de F20 avec le quantum restant (q = 4)
P4 CPU 20 √
(20; 10)
28
P5 CPU 48 √
(20; 20)
P6 4
CPU 14 √ F10 = [,,,,,,,P7,P8,P2]
(25; 10)
30
P7 CPU 72 CPU 96
(10; 18)
4
P8 CPU 28 CPU 64 CPU 88
(10; 36)
10 10
P9 Insérer à la fin de F10 avec un nouveau quantum (q = 8)
(5; 15)
Temps
Processus 1.2.c. Algorithme d’ordonnancement des files d’attente multi-niveaux avec
(priorité; durée) priorité où la politique d’ordonnancement de chaque file est RR (q = 8)

P1
(5; 7)
CPU 129 √

P2 CPU 100 √
(10; 20)
P3 CPU 148 √
(0; 12)
P4
(20; 10)
P5
(20; 20)
P6
(25; 10)

P7 CPU 110 √
(10; 18)
P8 CPU 108 CPU 114 √
(10; 36)
11
P9 CPU 122 CPU 136 √
(5; 15)
Temps
EXERCICE 1
Question 1: Algorithme d’ordonnancement des files d’attente multi-
niveaux avec priorité
1.La politique d’ordonnancement de chaque file est RR
A la fin du quantum, le processus sera inséré à la fin de sa file
A l’arrivé du processus prioritaire, le processus interrompu sera inséré à la tête de la file avec le
quantum restant
Séquence d’ordonnancement Trep Tatt Tres
P1 Début 22 AttCPU 122 CPU 129 Fin 100 100 107
P2 Début 24 AttCPU 48 CPU 56 AttCPU 72 CPU 80 AttCPU 96 CPU 100 Fin 20 56 76
P3 Début 0 AttCPU 136 CPU 148 Fin 136 136 148
P4 Début 0 CPU 4 AttCPU 14 CPU 20 Fin 0 10 20
P5 Début 28 CPU 48 Fin 0 0 20
P6 Début 4 CPU 14 Fin 0 0 10
P7 Début 30 AttCPU 64 CPU 72 AttCPU 88 CPU 96 AttCPU 108 CPU 110 Fin 34 62 80
P8 Début 4 AttCPU 20 CPU 28 AttCPU 56 CPU 64 AttCPU 80 CPU 88 AttCPU 16 74 12
110
100 CPU 108 AttCPU 110 CPU 114 Fin
P9 Début 10 AttCPU 114 CPU 122 AttCPU 129 CPU 136 Fin 104 111 126
EXERCICE 1
En utilisant le tableau suivant qui présente la priorité, la durée d’exécution et
l’instant d’arrivé création de chaque processus:
Processus P1 P2 P3 P4 P5 P6 P7 P8 P9
Priorité 5 10 0 20 20 25 10 10 5
Durée d’exécution 7 20 12 10 20 10 18 36 15
Instant d’arrivé 22 24 0 0 28 4 30 4 10

2. Dans le cas de quatre (4) files d’attente multi-niveaux rétroactives où la


stratégie d’ordonnancement de chaque file est la suivante : F0 (RR avec q = 4),
F1 (RR avec q = 8), F2 (RR avec q = 16) et F3 (SJF)
2.1. Donner la séquence d’ordonnancement des processus
2.2. Calculer le temps de réponse, le temps d’attente et le temps de résidence
13
de chaque processus.
EXERCICE 1
Question 2: Algorithme d’ordonnancement des files d’attente multi-
niveaux rétroactives

File d’attente 0 Quantum = 4

priorité
File d’attente 1 Quantum = 8

File d’attente 2 Quantum = 16

File d’attente 3 SJF

14
EXERCICE 1
Question 2: Algorithme d’ordonnancement des files d’attente multi-
niveaux rétroactives

30 28 24 22 10 4 4 0 0 Instants
P7 (18) P5 (20) P2 (20) P1(7) P9 (15) P8 (36) P6 (10) P4 (10) P3 (12) F0

F1

F2

F3

15
2. Algorithme d’ordonnancement des files d’attente multi-niveaux
Processus
durée) rétroactives à 4 files : F0 (RR avec q = 4), F1 (RR avec q = 8), F2 (RR avec q
= 16) et F3 (SJF)
22
P1
(7)
24
P2
(20)
P3 CPU 4 AttCPU (F1)
(12)
P4 CPU 8 AttCPU (F1)
(10)
28
P5
(20)
P6 4
CPU 12 √
AttCPU (F1)
(10)

P7 30
(18)
4
P8 AttCPU (F0) CPU 16 AttCPU (F1)
(36)
10 16
P9 CPU 20 AttCPU (F1)
(15)
Temps
EXERCICE 1
Question 2: Algorithme d’ordonnancement des files d’attente multi-niveaux
rétroactives

A t = 20, P3 (q = 8 )sera exécuté


Instants
F0
20 16 12 8 4 Instants
P9 (11) P8 (32) P6 (6) P4 (6) P3 (8) F1

Instants
F2
Instants
F3

A t = 22, le processus P1 arrive, et il sera inséré dans F0 (donc plus prioritaire). P3 sera inséré
17

dans F0 à la tête avec quantum restant (q = 6) et il ne sera exécuté qu’à l’instant 38.
2. Algorithme d’ordonnancement des files d’attente multi-niveaux
Processus
durée) rétroactives à 4 files : F0 (RR avec q = 4), F1 (RR avec q = 8), F2 (RR avec q
= 16) et F3 (SJF)
22
P1 insérer dans F0 à la tête avec AttCPU (F1)
CPU 26
(7)
quantum restant (q = 6) 24
P2 CPU 30 AttCPU (F1)
(20)
P3 AttCPU (F1)
(12)
CPU 4 CPU 22 AttCPU (F1) CPU 44 √
P4 CPU 8 AttCPU (F1) CPU 50 √
(10)
28
P5 CPU 34 AttCPU (F1)
(20)
P6 4
CPU 12 √
AttCPU (F1) CPU 56 √
(10)

P7 30
CPU 38 AttCPU (F1)
(18)
4
P8 AttCPU (F0) CPU 16 AttCPU (F1)
(36)
10 18
P9 CPU 20 AttCPU (F1)
(15)
Temps
2. Algorithme d’ordonnancement des files d’attente multi-niveaux
Processus
durée) rétroactives à 4 files : F0 (RR avec q = 4), F1 (RR avec q = 8), F2 (RR avec q
= 16) et F3 (SJF)

P1
(7)
AttCPU (F1) CPU 75 √
P2 AttCPU (F1) CPU 83 AttCPU (F2)
(20)
P3
(12) √
P4
(10)
CPU 56 √
P5 AttCPU (F1) CPU 91 AttCPU (F2)
(20)
P6
(10)

P7 AttCPU (F1) CPU 99 AttCPU (F2)
(18)
P8 CPU 64 AttCPU (F2)
(36)
19
P9 CPU 72 AttCPU (F2)
(15)
Temps
EXERCICE 1
Question 2: Algorithme d’ordonnancement des files d’attente multi-
niveaux rétroactives

A t = 99

F0

F1
91 83 75 72 64 Instants
P7 (6) P5 (8) P2 (8) P9 (3) P8 (24) F2

F3
20
2. Algorithme d’ordonnancement des files d’attente multi-niveaux
Processus
durée) rétroactives à 4 files : F0 (RR avec q = 4), F1 (RR avec q = 8), F2 (RR avec q
= 16) et F3 (SJF)

P1
(7)
AttCPU (F1) CPU 75 √
P2 AttCPU (F1) AttCPU (F2)
(20)
CPU 83 CPU 126 √
P3
(12) √
P4
(10)
CPU 56 √
P5 AttCPU (F1) AttCPU (F2)
(20)
CPU 91 CPU 134 √
P6
(10)

P7 AttCPU (F1) CPU 99 AttCPU (F2) CPU 140 √
(18)
P8 CPU 64 AttCPU (F2) CPU 115 AttCPU (F3)
(36)
21
P9 CPU 72 AttCPU (F2) CPU 118 √
(15)
Temps
EXERCICE 1
Question 2: Algorithme d’ordonnancement des files d’attente multi-
niveaux rétroactives

A t = 140

F0

F1

F2
115 Instants
P8 (8) F3
22
2. Algorithme d’ordonnancement des files d’attente multi-niveaux
Processus
durée) rétroactives à 4 files : F0 (RR avec q = 4), F1 (RR avec q = 8), F2 (RR avec q
= 16) et F3 (SJF)

P1
(7)
AttCPU (F1) CPU 75 √
P2 AttCPU (F1) AttCPU (F2)
(20)
CPU 83 CPU 126 √
P3
(12) √
P4
(10)
CPU 56 √
P5 AttCPU (F1) AttCPU (F2)
(20)
CPU 91 CPU 134 √
P6
(10)

P7 AttCPU (F1) CPU 99 AttCPU (F2) CPU 140 √
(18)
P8 CPU 64 AttCPU (F2) CPU 115 AttCPU (F3) CPU 148 √
(36)
23
P9 CPU 72 AttCPU (F2) CPU 118 √
(15)
Temps
EXERCICE 1
Question 2: Algorithme d’ordonnancement des files d’attente multi-
niveaux rétroactives
AttCPU dans F0 ; AttCPU dans F1; AttCPU dans F2; AttCPU dans F3.

Séquence d’ordonnancement Trep Tatt Tres


P1 Début 22 CPU 26 AttCPU 72 CPU 75 Fin 0 46 53
P2 Début 24 AttCPU 26 CPU 30 AttCPU 75 CPU 83 AttCPU 118 CPU 126 Fin 2 82 102
P3 Début 0 CPU 4 AttCPU 20 CPU 22 AttCPU 44 Fin 0 32 44
P4 Début 0 AttCPU 4 CPU 8 AttCPU 44 CPU 50 Fin 4 40 50
P5 Début 28 AttCPU 30 CPU 34 AttCPU 83 CPU 91 AttCPU 126 CPU 134 Fin 2 86 106
P6 Début 0 AttCPU 8 CPU 12 AttCPU 50 CPU 56 Fin 8 46 56
P7 Début 30 AttCPU 34 CPU 38 AttCPU 91 CPU 99 AttCPU 134 CPU 140 Fin 4 92 110
P8 Début 4 AttCPU 12 CPU 16 AttCPU 56 CPU 64 AttCPU 99 CPU 115 8 108 144
AttCPU 140 CPU 148 Fin
P9 Début 10 AttCPU 16 CPU 20 AttCPU 64 CPU 72 AttCPU 115 CPU 118 Fin 6 93 24
108
EXERCICE 2
Soit le tableau suivant:
Thread Priorité Instant Historique d’exécution
d’arrivé
Th1 8 0 8 ES(F0) 12 ES(F1) 10 ES(F0) 2
Th2 24 6 10 ES(F0) 10 ES(F0) 2
Th3 24 20 4 ES(F0) 8 ES(F1) 10 ES(F1) 6
Th4 14 22 6 ES(F1) 10 ES(F1) 2

La durée moyenne d'une opération d'E/S est de 10 ms. On dispose de 2


périphériques (F0 et F1) qui peuvent être partagés par les différents threads.
Sur un périphérique donné, les opérations d'E/S sont effectuées
séquentiellement. 25
EXERCICE 2
Soit le tableau suivant:
Thread Priorité Instant Historique d’exécution
d’arrivé
Th1 8 0 8 ES(F0) 12 ES(F1) 10 ES(F0) 2
Th2 24 6 10 ES(F0) 10 ES(F0) 2
Th3 24 20 4 ES(F0) 8 ES(F1) 10 ES(F1) 6
Th4 14 22 6 ES(F1) 10 ES(F1) 2

1. Donner l’ordre d’exécution de ces threads

2. Calculer le temps de résidence et le temps d'attente de chaque thread. En


déduire le taux d'utilisation du processeur. 26
EXERCICE 2
Algorithme d’ordonnancement sur Windows : un algorithme préemptif à
priorité dynamique avec des files d’attente multiniveaux rétroactives.
Threads Priorité Quantum
Temps réel
Fixe entre 16 et 31 Fixe à 20 ms
(Th2, Th3)
Variable entre 1 et 15:
Variable entre 20 ms et 120 ms :
Utilisateur • +6 à la fin d’E/S sur F0
• +20 à chaque passage à une file
(Th1, Th4) • +1 à la fin d’E/S sur F1
inférieure
• -1 à la fin du quantum

A la fin d’E/S, le thread est alors inséré en tête de la file correspondante à sa nouvelle
priorité.
A la fin du quantum, le thread est alors inséré en queue de la file correspondante à27sa
nouvelle priorité.
EXERCICE 2
Thread Priorité Instant Historique d’exécution
d’arrivé
Th1 8 0 8 ES(F0) 12 ES(F1) 10 ES(F0) 2
Th2 24 6 10 ES(F0) 10 ES(F0) 2
Th3 24 20 4 ES(F0) 8 ES(F1) 10 ES(F1) 6
Th4 14 22 6 ES(F1) 10 ES(F1) 2

Priorité = 8 + 6 = 14; Prio = 14 + 1 (F1) – 1 (q =0) = 14


Threads Q = 12 Q = 40
(priorité, quantum) Insérer au début de F14 insérer à la fin de F14

T1 CPU 6 AttCPU CPU 18 AttF0 F0 36 CPU 46 AttCPU CPU 56 AttF1 F1 74


(8, 20)

T2 6
CPU 16 F0 26 CPU 36 AttF0 F0 56 CPU 58 √
(24, 20)
T3 20
CPU 24 AttF0 F0 46 CPU 54 F1 64 CPU 74
(24, 20)
T4 22
(14, 20) CPU 26 AttCPU CPU 62 AttF1
28

Temps
EXERCICE 2
Thread Priorité Instant Historique d’exécution
d’arrivé
Th1 8 0 8 ES(F0) 12 ES(F1) 10 ES(F0) 2
Th2 24 6 10 ES(F0) 10 ES(F0) 2
Th3 24 20 4 ES(F0) 8 ES(F1) 10 ES(F1) 6
Th4 14 22 6 ES(F1) 10 ES(F1) 2

Threads Priorité = Max (14 + 6, 15) = 15; Q = 30; Insérer au début de F15
(priorité, quantum)
T1 F1 74 CPU 84 F0 94 AttCPU CPU 102 √
(14, 40)

T2 Prio = Max (14 +1, 15) = 15; Q = 4; insérer au début de F15


(24, 20)

T3 CPU 74 AttF1 F1 94 CPU 100 √


(24, 20)
T4
AttF1 F1 84 CPU 94 F1 104 CPU 106 √ 29
(14, 20)

Temps
Prio = Max (14 +1, 15) = 15; Q = 14; insérer au début de F15
EXERCICE 2
Algorithme d’ordonnancement sur Windows
Séquence d’ordonnancement
Th1 Début 0 CPU 6 AttCPU 16 CPU 18 AttF0 26 F0 36 CPU 46 AttCPU 54 CPU 56 AttF1
64 F1 74 CPU 84 F0 94 AttCPU 100 CPU 102 Fin
Th2 Début 6 CPU 16 F0 26 CPU 36 AttF0 46 F0 56 CPU 58 Fin
Th3 Début 20 CPU 24 AttF0 36 F0 46 CPU 54 F1 64 CPU 74 AttF1 84 F1 94 CPU 100 Fin
Th4 Début 22 AttCPU 24 CPU 26 AttCPU 58 CPU 62 AttF1 74 F1 84 CPU 94 F1 104 CPU
106 Fin
Pour le thread 1

Instants 0 36 74 94
Priorité 8 8 + 6 = 14 14 + 1 (F0) – 1 (q =0) = 14 Max (14 + 6, 15) =
Il sera inséré à la fin de la file de priorité 14 15
Quantum (ms) 20 12 0 40 30
30
Pour le thread 4: Instants 22 84 104
(Q = 20 ms) Priorité 14 Max (14 +1, 15) = 15 Max (15 + 1, 15) = 15
EXERCICE 2
Algorithme d’ordonnancement sur Windows
Séquence d’ordonnancement
Th1 Début 0 CPU 6 AttCPU 16 CPU 18 AttF0 26 F0 36 CPU 46 AttCPU 54 CPU 56 AttF1
64 F1 74 CPU 84 F0 94 AttCPU 100 CPU 102 Fin
Th2 Début 6 CPU 16 F0 26 CPU 36 AttF0 46 F0 56 CPU 58 Fin
Th3 Début 20 CPU 24 AttF0 36 F0 46 CPU 54 F1 64 CPU 74 AttF1 84 F1 94 CPU 100 Fin
Th4 Début 22 AttCPU 24 CPU 26 AttCPU 58 CPU 62 AttF1 74 F1 84 CPU 94 F1 104 CPU
106 Fin
Ordre d’exécution

T1 T2 T1 T3 T4 T2 T1 T3 T1 T2 T4 T3 T1 T4 T3 T1 T4
| | | | | | | | | | | | | | | | | |
| | |
0 6 16 18 20 24 26 36 46 54 56 58 62 74 84
64 94 100 102 104 106
31

CPU inactif
EXERCICE 2
Algorithme d’ordonnancement sur Windows
Séquence d’ordonnancement
Th1 Début 0 CPU 6 AttCPU 16 CPU 18 AttF0 26 F0 36 CPU 46 AttCPU 54 CPU 56 AttF1
64 F1 74 CPU 84 F0 94 AttCPU 100 CPU 102 Fin
Th2 Début 6 CPU 16 F0 26 CPU 36 AttF0 46 F0 56 CPU 58 Fin
Th3 Début 20 CPU 24 AttF0 36 F0 46 CPU 54 F1 64 CPU 74 AttF1 84 F1 94 CPU 100 Fin
Th4 Début 22 AttCPU 24 CPU 26 AttCPU 58 CPU 62 AttF1 74 F1 84 CPU 94 F1 104 CPU
106 Fin
Pour vérifier, Tatt_total= Tres – (Tex + TES)
Thread Tex = Tres Tatt Taux d’utilisation du processeur (TUCPU)
TCPU CPU F0 F1 Total (*)

Th1 32 102 24 8 8 70 TUCPU = × 100=
Th2 22 52 0 10 0 30
Th3 28 80 0 12 10 52 × 100 = × 100 32
=
Th4 18 84 34 0 12 66 94%
EXERCICE 3
Soient A, B et C trois threads s’exécutant sur Linux.
Threads A B C
Priorité statique 20 18 10
Politique (3) SCHED_OTHER SCHED_OTHER SCHED_OTHER
d’ordonnancement (2) SCHED_RR SCHED_RR SCHED_RR
(1) SCHED_FIFO SCHED_FIFO SCHED_FIFO
(4) SCHED_FIFO SCHED_RR SCHED_OTHER
Instant d’arrivé 0 0 0
Historique temporelle CPU: 16 ut, E/S: 16 ut; CPU: 25 CPU: 4 ut, E/S: 11 ut; CPU: 30 CPU: 25

Pour chaque politique d’ordonnancement :

1. Donner l’ordre d’exécution de ces threads

2. Calculer le temps de séjour et d’attente pour chaque thread. 33

3. Calculer le nombre de changement de contexte


EXERCICE 3
Soient A, B et C trois threads s’exécutant sur Linux.
Threads A B C
Priorité statique 20 18 10
Politique (3) SCHED_OTHER SCHED_OTHER SCHED_OTHER
d’ordonnancement (2) SCHED_RR SCHED_RR SCHED_RR
(1) SCHED_FIFO SCHED_FIFO SCHED_FIFO
(4) SCHED_FIFO SCHED_RR SCHED_OTHER
Instant d’arrivé 0 0 0
Historique temporelle CPU: 16 ut, E/S: 16 ut; CPU: 25 CPU: 4 ut, E/S: 11 ut; CPU: 30 CPU: 25
On distingue deux cas:
a. les E/S se font sur deux périphériques différents

b. les E/S se font sur le même périphérique (e.g. disque dur) où les requêtes E/S sont traitées
en FCFS, et le périphérique ne traite qu’une seule requête E/S à la fois et lorsqu’une requête
34
est lancée, elle ne peut pas être interrompue.
EXERCICE 3
Algorithme d’ordonnancement sur Linux:
Système d’ordonnancement multiniveaux indépendants
La valeur de priorité varie de 1 à 40 ( 1 plus faible et 40 la plus forte)
Trois politiques d'ordonnancement
Politique Principe Préemptif Priorité Quantum (Q) Critère de
(Prio) sélection
SCHED_FIFO FCFS Oui Statique ///// Priorité
SCHED_RR RR Oui Statique Variable Priorité
Q = Q/2 + prio
SCHED_OTHER RR Oui ////// Variable Note = Q + prio
Q = Q/2 + prio

Priorité entre les classes: un thread de la classe SCHED_FIFO est plus


prioritaire qu’un thread de la classe SCHED_RR qui est plus prioritaire
35
qu’un thread de la classe SCHED_OTHER