Vous êtes sur la page 1sur 44

Ordonnancement des processus

SYSTÈMES D’EXPLOITATION
AVANCÉES

Ce cours est fortement inspiré de celui de Uğur HALICI


(http://www.eee.metu.edu.tr/~halici/courses/442/Ch2%20Process%20Scheduling.pdf)
Critères d’Ordonnancement

• Utilisation du CPU
• Débit (Throughput)
• Temps de rotation (Turnaround time)
• Temps d’attente
• Temps de réponse

Nadia Bel Hadj Aissa 2


Critères d’optimisation: max/min
• Les critères d’ordonnancement peuvent être ramenés à des
problèmes d’optimisation. Chaque critère devra être maximisé
ou minimisé.
• Utilisation du CPU

même temps??
Peuvent-ils tous être optimisés en
– Maximiser
• Débit (Throughput)
– Maximiser
• Temps de rotation (Turnaround time)
– Minimiser
• Temps d’attente
– Minimiser
• Temps de réponse
– Minimiser

Nadia Bel Hadj Aissa 3


Avec/Sans réquisition
• Ordonnancement sans réquisition (non préemptif):
– Une fois que le CPU a été allouée à un processus, ce dernier le
garde jusqu'à ce qu’il le libère, soit parce qu’il a terminé, soit
parce qu’il commute à l’état en attente.
– Algorithmes simples et faciles à mettre en œuvre mais pas
adaptés pour le temps partagé et seulement pour les système
de traitement par lots.
• Ordonnancement avec réquisition (préemptif):
– Un processus peut être suspendu à n’importe quel instant,
sans avoir été prévenu, pour laisser la place à un autre
processus.
– Implémentation plus couteuse à cause de la commutation de
processus, utilisée dans les systèmes à temps partagé et
systèmes temps-réels.
– Nécessité d’un mécanisme de synchronisation.

Nadia Bel Hadj Aissa 4


Exemple

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

5
Ordonnancement sans réquisition
PREMIER ARRIVÉ PREMIER SERVI

Nadia Bel Hadj Aissa 6


FIFO (First In First Out)
• Allocation dans l’ordre d’arrivée (premier
arrivé = premier servi)
Processus durée
P1 24
P2 3
P3 3
• L’ordre d’arrivée est: P1 , P2 , P3
P1 P2 P3

0 24 27 30
• Le temps d’attente pour P1 = 0; P2 = 24; P3 = 27
• Temps moyen d’attente: (0 + 24 + 27)/3 = 17
Nadia Bel Hadj Aissa 7
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ A
:

8
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ B
:

9
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ B C
:

10
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ B C
:

11
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ C D
:

12
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ C D A
:

13
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ C D A
:

14
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ D A B
:

15
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ D A B
:

16
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ A B C
:

17
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ B C D
:

18
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ B C D
:

19
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ C D A
:

20
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ C D A
:

21
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ D A
:

22
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ: A

23
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ: D

24
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ: D

25
2.3.1 First-Come-First-Served (FCFS)

Process Arrival 1st exec 1st I/O 2nd exec 2nd I/O 3rd exec
time
A 0 4 4 4 4 4
B 2 8 1 8 - -
C 3 2 1 2 - -
D 7 1 1 1 1 1

RQ:

26
2.3.1 First-Come-First-Served (FCFS)

• Processor utilization = (35 / 35) * 100 = 100 %


• Throughput = 4 / 35=0.11

27
2.3.1 First-Come-First-Served (FCFS)

• Turn around time:


tatA = 34 – 0 = 34
tatB = 27 – 2 = 25
tatC = 29 – 3 = 26
tatD = 35 – 7 = 28

tatAVG = (34 + 25 + 26 + 28) / 4 = 28.25

28
2.3.1 First-Come-First-Served (FCFS)

• Turn around time:


tatA = 34 – 0 = 34
tatB = 27 – 2 = 25
tatC = 29 – 3 = 26
tatD = 35 – 7 = 28

tatAVG = (34 + 25 + 26 + 28) / 4 = 28.25

29
2.3.1 First-Come-First-Served (FCFS)

• Turn around time:


tatA = 34 – 0 = 34
tatB = 27 – 2 = 25
tatC = 29 – 3 = 26
tatD = 35 – 7 = 28

tatAVG = (34 + 25 + 26 + 28) / 4 = 28.25

30
2.3.1 First-Come-First-Served (FCFS)

• Turn around time:


tatA = 34 – 0 = 34
tatB = 27 – 2 = 25
tatC = 29 – 3 = 26
tatD = 35 – 7 = 28

tatAVG = (34 + 25 + 26 + 28) / 4 = 28.25

31
2.3.1 First-Come-First-Served (FCFS)

• Turn around time:


tatA = 34 – 0 = 34
tatB = 27 – 2 = 25
tatC = 29 – 3 = 26
tatD = 35 – 7 = 28

tatAVG = (34 + 25 + 26 + 28) / 4 = 28.25

32
2.3.1 First-Come-First-Served (FCFS)

• Waiting time:
wtA = (0 – 0) + (15 – 8) + (30 – 23) = 14
wtB = (4 – 2) + (19 – 13) = 8
wtC = (12 – 3) + (27 – 15) = 21
wtD = (14 – 7) + (29 – 16) + (34 – 31) = 23

wtAVG = (14 + 12 + 21 + 23) / 4 = 16.5

33
2.3.1 First-Come-First-Served (FCFS)

• Waiting time:
wtA = (0 – 0) + (15 – 8) + (30 – 23) = 14
wtB = (4 – 2) + (19 – 13) = 8
wtC = (12 – 3) + (27 – 15) = 21
wtD = (14 – 7) + (29 – 16) + (34 – 31) = 23

wtAVG = (14 + 12 + 21 + 23) / 4 = 16.5

34
2.3.1 First-Come-First-Served (FCFS)

• Waiting time:
wtA = (0 – 0) + (15 – 8) + (30 – 23) = 14
wtB = (4 – 2) + (19 – 13) = 8
wtC = (12 – 3) + (27 – 15) = 21
wtD = (14 – 7) + (29 – 16) + (34 – 31) = 23

wtAVG = (14 + 12 + 21 + 23) / 4 = 16.5

35
2.3.1 First-Come-First-Served (FCFS)

• Waiting time:
wtA = (0 – 0) + (15 – 8) + (30 – 23) = 14
wtB = (4 – 2) + (19 – 13) = 8
wtC = (12 – 3) + (27 – 15) = 21
wtD = (14 – 7) + (29 – 16) + (34 – 31) = 23

wtAVG = (14 + 12 + 21 + 23) / 4 = 16.5

36
2.3.1 First-Come-First-Served (FCFS)

• Waiting time:
wtA = (0 – 0) + (15 – 8) + (30 – 23) = 14
wtB = (4 – 2) + (19 – 13) = 8
wtC = (12 – 3) + (27 – 15) = 21
wtD = (14 – 7) + (29 – 16) + (34 – 31) = 23

wtAVG = (14 + 12 + 21 + 23) / 4 = 16.5

37
2.3.1 First-Come-First-Served (FCFS)

• Response time:
rtA = 0 – 0 = 0
rtB = 4 – 2 = 2
rtC = 12 – 3 = 9
rtD = 14 – 7 = 7

rtAVG = (0 + 2 + 9 + 7) / 4 = 4.5

38
2.3.1 First-Come-First-Served (FCFS)

• Response time:
rtA = 0 – 0 = 0
rtB = 4 – 2 = 2
rtC = 12 – 3 = 9
rtD = 14 – 7 = 7

rtAVG = (0 + 2 + 9 + 7) / 4 = 4.5

39
2.3.1 First-Come-First-Served (FCFS)

• Response time:
rtA = 0 – 0 = 0
rtB = 4 – 2 = 2
rtC = 12 – 3 = 9
rtD = 14 – 7 = 7

rtAVG = (0 + 2 + 9 + 7) / 4 = 4.5

40
2.3.1 First-Come-First-Served (FCFS)

• Response time:
rtA = 0 – 0 = 0
rtB = 4 – 2 = 2
rtC = 12 – 3 = 9
rtD = 14 – 7 = 7

rtAVG = (0 + 2 + 9 + 7) / 4 = 4.5

41
2.3.1 First-Come-First-Served (FCFS)

• Response time:
rtA = 0 – 0 = 0
rtB = 4 – 2 = 2
rtC = 12 – 3 = 9
rtD = 14 – 7 = 7

rtAVG = (0 + 2 + 9 + 7) / 4 = 4.5

42
Inconvénients FIFO

• défavorise les entités ayant besoin d’utiliser


la ressource un court laps de temps
• Le temps d’attente n’est pas proportionnel au
temps d’utilisation
⇒ pas équitable,
⇒ temps moyen de traitement élevé

Nadia Bel Hadj Aissa 43


Inconvénients FIFO
– une grande perte de cycles de CPU

CPU (1s) I/O (1ms) I/O (1ms) I/O (1ms) I/O (1ms)

Exécute pour Plusieurs processus tributaire aux E/S


1s à la fois et
bloque Chaque a besoin de faire 1000 lectures au disque, et
bloque immédiatement (temps de CPU court: <1ms)

Si le processus d’E/S a le CPU une fois par seconde cela va prendre


1000 secondes pour que tout les processus complètent! Si le processus
qui est tributaire du CPU donne le CPU tout les 10ms, tous les processus
qui font des E/S finissent en un petit 10 secondes!

Nadia Bel Hadj Aissa 44

Vous aimerez peut-être aussi