Vous êtes sur la page 1sur 69

Licence Informatique

2021-2022
Ordonnancement Processus
Introduction
 Les méthodes d’ordonnancement ont des nombreuses
applications
 Et ont été très étudiées, surtout avec des méthodes
probabilistes et de simulation
 Non seulement en informatique, mais aussi en gestion:
 Supposons qu’on parle de différents tâches à exécuter
dans une usine dans laquelle il y a des ressources qui
sont des ouvriers et des outils

3
Diagramme de transition d’états d’un processus

4
Files d’attente de processus pour ordonnancement
file prêt

Nous ferons l’hypothèse que le premier processus dans une file est celui qui utilise la ressource: ici,
proc7 exécute.
Nous débuterons avec l’hypothèse qu’il n’y a qu’une seule UCT
5
Concepts de base
 La multiprogrammation vise à obtenir une
 utilisation optimale des ressources
 et aussi un bon temps de réponse pour l’usager
 L ’UCT est la ressource la plus précieuse dans un
ordinateur, donc nous parlons d’elle
 cependant, les principes que nous verrons s’appliquent aussi à
l’ordonnancement des autres ressources (unités E/S, etc).
 L’ordonnanceur UCT est la partie du SE qui décide quel
processus dans la file ready/prêt obtient l’UCT quand elle
devient libre

6
Les cycles d’un processus

 Cycles (bursts) d’UCT et E/S: l’activité d’un processus consiste de


séquences d’exécution sur UCT et d’attentes: - d’E/S ou de
synchronisation avec autres processus
7
Longueur normale des cycles
 Étant donné la grande vitesse de l’UCT par rapport aux
périphériques, la plupart des cycles d’UCT seront très
courts
 Cependant il pourrait y avoir des longs cycles d’UCT
quand on demandera des calculs poussés
 Calculs scientifiques etc

Ch. 6 8
Quand invoquer l’ordonnanceur UCT
 L ’ordonnanceur UCT doit prendre sa décision chaque fois que le processus
exécutant est interrompu, c-à.-d:

1. un processus se présente en tant que nouveau ou se termine


2. un processus exécutant devient bloqué en attente
3. un processus change d’exécutant/running à prêt/ready
4. un processus change de attente à prêt/ready
• tout événement dans un système qui cause une interruption de l’UCT implique
l’intervention de l’ordonnanceur,
• qui devra prendre une décision concernant quel proc ou thread aura l’UCT après

 Préemption: on a préemption si on enlève l’UCT à un processus qui l’avait et ne l’a


pas laissée de propre initiative

9
Dispatcheur (meilleur français: répartiteur)
 Le processus qui donne le contrôle au processus choisi
par l’ordonnanceur. Il doit se préoccuper de:
 changer de contexte
 changer à mode usager
 réamorcer le processus choisi
 Attente de dispatcheur (dispatcher latency)
 le temps nécessaire pour exécuter les fonctions du
dispatcheur
 il est souvent négligé, il faut supposer qu’il soit petit par
rapport à la longueur d’un cycle

Ch. 6 10
Critères d’ordonnancement
 Il y aura normalement plusieurs processus dans la file
prêt

 Quand l’UCT devient disponible, lequel choisir?

 Critères généraux:
 Bonne utilisation de l’UCT
 Réponse rapide à l’usager

 Mais ces critères peuvent être jugés différemment...


11
Critères spécifiques d’ordonnancement
 Utilisation UCT: pourcentage d’utilisation
 Débit = Throughput: nombre de processus qui
complètent dans l’unité de temps
 Temps de rotation = turnaround: le temps pris par un
proc de son arrivée à sa termin.
 Temps d’attente: attente dans la file prêt (somme de
tout le temps passé en file prêt)
 Temps de réponse: le temps entre une demande de
l’usager et la réponse

12
Critères d’ordonnancement: maximiser/minimiser

 À maximiser
• Utilisation UCT: pourcentage d’utilisation
• Débit = Throughput: nombre de processus qui
complètent dans l ’unité de temps
• Temps de rotation (turnaround): temps
terminaison moins temps arrivée

 À minimiser
• Temps d’attente: attente dans la file prêt
• Temps de réponse (pour les systèmes
interactifs): le temps entre une demande et la
réponse
13
Algorithmes d’ordonnancement
 L'ordonnanceur (scheduler) définit l'ordre dans lequel les processus prêts
utilisent l'UC (en acquièrent la ressource) et la durée d'utilisation, en utilisant
un algorithme d'ordonnancement.
 Un bon algorithme d'ordonnancement doit posséder les qualités suivantes:
Équité chaque processus reçoit équitablement sa part
du temps processeur
efficacité le processeur doit, si possible, travailler à 100 %
du temps
temps de réponse Il doit être le plus court possible (en mode
interactif )
temps d'exécution Il doit être le plus court possible en minimisant
le temps d’attente.
rendement On doit avoir le plus grand nombre possible de
travaux effectués par unité de temps

 A noter que l'ensemble de ces objectifs est contradictoire, par exemple le 3ème
et le 4ème objectif.

14
Examinons maintenant plusieurs méthodes
d’ordonnancement et voyons comment elles
se comportent par rapport à ces critères

nous étudierons des cas spécifiques

15
Premier arrivé premier servi (FCFS)
 L'ordre d'exécution est identique à l'ordre d'arrivée dans la file des
processus éligibles. Classement par ordre d’arrivée. Ordonnanceur
sélectionne premier dans la file.
 Exemple :
 trois processus P1, P2, P3 à exécuter de durées d'exécution respectives 14
, 2 et 2 unités de temps.

P1 P2 P3 FCFS
0 14 16 18

 Si l'ordre d'arrivée est 1, 2, 3, les temps d’exécution respectifs sont 14, 16,
et 18 unités de temps, et le temps d’exécution moyen est de 16 unités de
temps.
 Mais si l'ordre d'arrivée est 2,3,1, le temps de service moyen est de 8
(2+4+18) / 3.
Premier arrivé, premier servi (First come,
first serve, FCFS)
Exemple: Processus Temps de cycle
P1 24
P2 3
P3 3
Si les processus arrivent au temps 0 dans l’ordre: P1 , P2 , P3
Le diagramme Gantt est:

P1 P2 P3

0 24 27 30

Temps d’attente pour P1= 0; P2= 24; P3= 27


Temps attente moyen: (0 + 24 + 27)/3 = 17 17
Premier arrive, premier servi
 Utilisation UCT = 100%
 Débit = 3/30 = 0,1
 3 processus complétés en 30 unités de temps
 Temps de rotation moyen: (24+27+30)/3 = 27

P1 P2 P3

0 24 27 30

Ch. 6 18
Tenir compte du temps d’arrivée!
 Dans le cas où les processus arrivent à moment différents, il
faut soustraire les temps d’arrivée
 Exercice: répéter les calculs si:
 P1 arrive à temps 0 et dure 24
 P2 arrive à temps 2 et dure 3
 P3 arrive à temps 5 et dure 3
 Donc P1 attend 0 comme avant
 Mais P2 attend 24-2, etc.

P1 P2 P3

0 24 27 30 19
arrivée P2
FCFS Scheduling (Cont.)
Si les mêmes processus arrivent à 0 mais dans l’ordre
P2 , P3 , P1 .
Le diagramme de Gantt est:

P2 P3 P1

0 3 6 30
 Temps d’attente pour P1 = 6 P2 = 0 P3 = 3
 Temps moyen d’attente: (6 + 0 + 3)/3 = 3 était 17
 Temps de rotation moyen: (3+6+30)/3 = 13 était 27
 Beaucoup mieux!
 Donc pour cette technique, les temps peuvent varier grandement par
rapport à l’ordre d’arrivée de différent processus
20
Avantages et Inconvénients du FCFS
 Avantages
 Simple à réaliser (pas de préemption)
 Répond au critère d’équité
 Inconvénients
 Ne répond pas à tous les critères de performances et
notamment temps d’exécution et temps de réponse.
Temps d’exécution peut dépendre de l’ordre d’arrivée.

21
Plus Court d’abord = Shortest Job First (SJF)

 Le processus qui demande moins d’UCT part le premier


 Optimal en principe du point de vue du temps d’attente moyen
 (v. le dernier exemple)

P2 P3 P1

0 3 6 30

 Mais comment savons-nous quel processus demande moins d’UCT!


 Supposons pour l’instant qu’on puisse

Ch. 6 22
SJF avec préemption ou non
 Avec préemption:
 si un processus qui dure moins que le restant du
processus courant se présente plus tard,

 l’UCT est enlevée au proc courant et donnée à ce


nouveau processus
 SRTF: shortest remaining-time first

 Sans préemption: on permet au processus courant de


terminer son cycle

23
SJF sans préemption
 Non préemptif
 Le processus ayant le plus court temps de traitement passe
premier.
 Privilégie les petits travaux
 Problème : comment prédire la durée d'exécution des processus
apriori ?
 Solutions :
 Soit faire de la prédiction sur la durée d'exécution des processus.
 faire accompagner chaque programme d'une durée maximum
d'exécution autorisée .
 Grand inconvénient: famine (starvation): un processus long peut
attendre indéfiniment d’être sélectionné par l’ordonnanceur si
des processus court arrivent en permanence dans la file.
 D’où la nécessité de la préemption!
SJF avec préemption
 Allocation à base de quantum
 A la fin de chaque quantum, l’ordonnanceur choisit la
tâche dont le temps d'exécution restant est le plus
court.

 Cet algorithme fournit la valeur optimale du temps


moyen de traitement pour les algorithmes avec
préemption.
Example de SJF sans préemption
Processus Arrivée Cycle UCT
P1 0 7
P2 2 4
P3 4 1
P4 5 4

 SJF (sans préemption)

P1 P3 P2 P4

0 7 8 12 16

P2 arr. P3 arr. P4 arr


 Temps d’attente moyen = (0+(8-2)+(7-4)+(12-5))/4
– (0 + 6 + 3 + 7)/4 = 4
 Temps de rotation moyen = 7+(12-2)+(8-4)+(16-5) = 8 26
Exemple de SJF avec préemption
Processus Arrivée Cycle
P1 0 7
P2 2 4
P3 4 1
P4 5 4
 SJF (préemptive)

P1 P2 P3 P2 P4 P1

0 2 4 5 7 11 16

P2 arr. P3 arr. P4 arr

 Temps moyen d`attente = (9 + 1 + 0 +2)/4 = 3 était 4


 P1 attend de 2 à 11, P2 de 4 à 5, P4 de 5 à 7
 Temps de rotation moyen = 16+ (7-2) + (5-4) + (11-5) = 7 était 8
27
Plus en détail: file prêt
 Temps des interruptions
 Temps 0:
 Le seul proc est P1, il est choisi
 Temps 2: Interruption causée par l’arrivée de P2
 Deux procs dans la file: P1 qui demande encore 5 et P2 qui
demande 4: ce dernier est choisi
 Temps 4: Interruption causée par l’arrivée de P3
 Trois procs dans la file: P1=5, P2=2, P3=1: ce dernier est choisi
 Etc: compléter comme exercice

28
Le plus court d’abord SJF: critique
 Difficulté d’estimer la longueur à l’avance
 Plus pratique pour l’ordonnancement travaux que pour
l’ordonnancement processus
 Normal. on peut plus facilement prévoir la durée d’un travail
entier que la durée d’un cycle
 Il y a assignation implicite de priorités: préférences aux
travaux plus courts
 Famine possible pour les travaux aux cycles longs

29
Préemption ou non
 La préemption est le cas normal pour l’UCT car
l’arrivée d’un nouveau proc cause une interruption et à
ce moment là
 l’ordonnanceur devra prendre une décision sur le
prochain proc à exécuter
 Mais dans quelques ressources la préemption est
impossible:
 P.ex. dans une imprimante il faut toujours terminer
l’impression courante avant d’en amorcer une nouvelle

30
Comment déterminer la longueur des cycles à l’avance?
 Quelques méthodes proposent de déterminer le
comportement futur d’un processus sur la base de
son passé
 p.ex. méthode de la moyenne exponentielle

Ch. 6 31
Différentes méthodes en principe
 Hypothèse de comportement constant d’un processus:
 Un processus qui a eu des cycles d’UCT de 3
millisecondes en moyenne continuera comme ça
 Hypothèse de comportement variable d’un processus:
 Un processus qui avant avait des cycles d’UCT de 3ms,
maintenant a allongé ces cycles, qui sont de 10ms
 La durée des cycles les plus récents est considérée plus
importante pour la prévision des prochains cycles

32
Difficultés majeures avec les méthodes
discutées
 Premier arrivé, premier servi, FCFS:
 Temps moyen d’attente non-optimal
 Mauvaise utilisation des ressources s’il y a apport continu de
processus aux cycles longs (v. effet d’accumulation)
 Plus court servi, SJF:
 Difficulté d’estimer les cycles
 Famine
 Donc besoin d’une méthode systématiquement préemptive
 Le tourniquet

 si vous faites toujours les devoirs les plus courts en premier, vous pourriez avoir l’impression de
faire beaucoup mais vous pourriez ne jamais arriver aux plus longs…
 si vous faites les devoirs dans l’ordre d’arrivée, les longs pourraient vous bloquer pour
longtemps…
 donc votre solution est de donner un peu de temps à chacun, cycliquement

33
Le tourniquet
 Si j’ai une seule grande pizza et plusieurs personnes
affamées, je pourrais:
 Offrir la pizza à chacun mais attendre qu’une personne
ait fini avant de passer à la suivante
 (méthodes précédentes)
 Ou sinon offrir une tranche à la fois à chacun et
permettre aux personnes de revenir

Ch. 6 34
Tourniquet = Round-Robin (RR)
Le plus utilisé en pratique

 Chaque processus est alloué une tranche de temps (p.ex.


10-100 millisecs.) pour exécuter
 Tranche aussi appelée quantum
 S’il exécute pour tranche entière sans autres interruptions, il est
interrompu par la minuterie et l ’UCT est donnée à un autre
processus
 Le processus interrompu redevient prêt (à la fin de la file)
 Méthode préemptive P[0] P[1] La file prêt est un cercle
P[7] P[2] (dont RR)
P[6] P[3]

P[5] P[4]
Ch. 6 35
Exemple: Tourniquet tranche = 20

Processus Cycle
P1 53
P2 17
P3 68
P4 24

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162

 Observez
 temps de rotation et temps d’attente moyens beaucoup plus
élevés que SJF (exercice: calculez-les…)
 mais aucunCh.
processus
6 n’est favorisé 36
Performance de tourniquet
 S ’il y a n processus dans la file prêt et la tranche est t,
alors chaque processus reçoit 1/n du temps UCT dans
unités de durée max. t
 Si t grand  FCFS
 Si t petit... nous verrons

Ch. 6 37
Une petite tranche augmente les
commutations de contexte (temps de SE)

Ch. 6 38
Exemple pour voir l’importance
d’un bon choix de tranche (à développer
comme exercice)
 Trois cycles:
 A, B, C, toutes de 10
 Essayer avec:
 t=1
 t=10
 Dans ce deuxième cas, tourniquet fonctionne comme
FIFO et le temps de rotation moyen est meilleur

Ch. 6 39
Comment déterminer la tranche en
pratique
 Évidemment la durée médiane des cycles des
processus en attente est impossible à déterminer!
 En pratique, les observations passées peuvent être
utilisées:
 le SE peut garder une trace des durées des cycles des
processus récemment exécutés et ajuster la tranche
périodiquement

40
Priorités
 Affectation d’une priorité à chaque processus (p.ex. un
nombre entier)
 souvent les petits chiffres dénotent des hautes priorités
 0 la plus haute
 L’UCT est donnée au processus prêt avec la plus haute
priorité
 avec ou sans préemption
 il y a une file prêt pour chaque priorité

41
Problème possible avec les
priorités
 Famine: les processus moins prioritaires n’arrivent
jamais à exécuter
 Solution: vieillissement:
 modifier la priorité d ’un processus en fonction de son
âge et de son historique d ’exécution
 le processus change de file d`attente
 Plus en général, la modification dynamique des
priorités est une politique souvent utilisée (v. files à
rétroaction ou retour)

42
Files à plusieurs niveaux (multiples)
 La file prêt est séparée en plusieurs files, p.ex.
 travaux `d’arrière-plan` (background - batch)
 travaux `de premier plan` (foreground - interactive)
 Chaque file a son propre algorithme d’ordonnancement, p.ex.
 FCFS pour arrière-plan
 tourniquet pour premier plan
 Comment ordonnancer entre files?
 Priorité fixe à chaque file  famine possible, ou
 Chaque file reçoit un certain pourcentage de temps UCT, p.ex.
 80% pour arrière-plan

 20% pour premier plan

43
Ordonnancement avec files multiples
(ex.: serveur principal d’une université)

Un proc peut être servi seulement si toutes les files de priorités plus hautes sont vides
44
Algorithme des files multiniveaux
 Utilisation de plusieurs files d’attente
 Une file d’attente contient des processus de même
nature
 Eviter le mélange de processus (utilisateurs et
système)
Algorithme des files multiniveaux
Principe général
1. Fixer le nombre de files
2. Hiérarchiser les files ( fixer un ordre des files)
• Priorité d’allocation (F1 > F2 > … > Fn)
• Allocation selon le niveau d’une file dans la hiérarchie
3. Fixer la politique de gestion de chaque file
• Critère(s) d’entrée dans la file
• Critère de sortie de la file pour l’allocation de l’UC
• Critère de passage d’une file à une autre
Algorithme des files multiniveaux
4. Principe d’allocation
• Commencer par la file la plus prioritaire
• Ne passer à la file i+ 1 que si tous les processus de la file i
ont été satisfaits (le processeur leur a été alloué)
• Préemption entre files
•Revenir à une file prioritaire en cas d’arrivée de
nouveaux processus dans cette file
Files multiples et à retour
 Un processus peut passer d’une file à l’autre, p.ex.
quand il a passé trop de temps dans une file
 À déterminer:
 nombre de files
 algorithmes d’ordonnancement pour chaque file
 algorithmes pour décider quand un proc doit passer d ’une file
à l`autre
 algorithme pour déterminer, pour un proc qui devient prêt,
sur quelle file il doit être mis

48
Files multiples et à retour

PRIO = 0
la + élevée

PRIO = 1

PRIO = 2

49
Exemple de files multiples à retour
 Trois files:
 P0: tourniquet, tranche = 8 msecs
 P1: tourniquet, tranche = 16 msecs
 P2: FCFS
 Ordonnancement:
 Un nouveau processus entre dans Q0, il reçoit 8 msecs d ’UCT
 S ’il ne finit pas dans les 8 msecs, il est mis dans Q1, il reçoit 16
msecs additionnels
 S ’il ne finit pas encore, il est interrompu et mis dans Q2
 Si plus tard il commence à avoir des cycles plus courts, il
pourrait retourner à Q0 ou Q1
50
Exercice
 Exemple concret
 Dans un système avec files multiples, un processus a
besoin de 50 secondes d’UCT (sans appels au SE) .
 Dans la première file on lui donne 5 secondes et à
chaque file successive on lui donne le double (10, 20, 40
…)
 Combien de fois sera-t-il interrompu et dans quelle file
se trouvera-t-il quand il terminera?

51
En pratique...
 Les méthodes que nous avons vu sont toutes utilisées (sauf
plus court servi pur qui est normalement impossible)
 Les SE sophistiqués fournissent aux gérants de grands
systèmes des librairies de méthodes, qu’ils peuvent choisir
et combiner au besoin après avoir observé le comportement
du système
 Pour chaque méthode, plusieurs params sont disponibles:
p.ex. durée des tranches, coefficients, etc.
 Ces méthodes évidemment sont importantes surtout pour
les grands ordis qui ont des fortes charges de travail
52
Aussi…
 Notre étude des méthodes d’ordonnancement est
théorique, ne considère pas en détail tous les problèmes
qui se présentent dans l’ordonnancement UCT

 P.ex. les ordonnanceurs UCT ne peuvent pas donner l’UCT


à un processus pour tout le temps dont il a besoin
 Car en pratique, l’UCT sera souvent interrompue par
quelque événement externe avant la fin de son cycle

53
Aussi…
 Cependant les mêmes principes d’ordonnancement
s’appliquent à unités qui ne peuvent pas être
interrompues, comme une imprimante, une unité
disque, etc.

 Dans le cas de ces unités, on pourrait avoir des infos


complètes concernant le temps de cycle prévu, etc.

 Aussi, cette étude ne considère pas du tout les temps


d’exécution de l’ordonnanceur, du dispatcheur, etc.
Plusieurs UCTs
 Dans le passé, la vitesse des UCT augmentait rapidement
avec chaque génération d’ordinateurs
 Aujourd’hui, l’ingénierie rencontre des limites pour
augmenter la vitesse des UCTs
 Donc on se dirige vers la production de plus d’UCTs par
ordinateur
 Cependant, augmenter le nombre d’UCT n’implique pas
une augmentation proportionnelle de la puissance de
l’ordi, pour des raisons que nous verrons
 Surtout, la charge de gestion de ces UCTs ralentit l’ordinateur

55
Ordonnancement avec plusieurs UCTs
identiques: homogénéité
UCT
 Méthodes symétriques: chaque
UCT peut exécuter UCT
l’ordonnancement et la répartition
 Une seule liste prêt pour toutes UCT
les UCTs (division travail = load
UCT
sharing)

 Méthodes asymétriques: certaines UCT


fonctions sont réservées à des UCT
spécifiques UCT
 Files d’attentes séparées pour
UCT
chaque UCT
UCT
56
Symétrique ou non?
 La manière la plus normale de gérer plusieurs UCT est la
symétrique
 Plus simple à gérer

 Cependant l’asymétrique a un avantage :


 Étant donné que chaque UCT exécute des fonctionnalités
indépendantes, le temps perdu en synchronisation entre
UCT est réduit!

57
Ch. 6
Systèmes temps réel
 systèmes temps réel rigides (hard):
 les échéances sont critiques (p.ex. contrôle d’une
chaîne d`assemblage, animation graphique)
 il est essentiel de connaître la durée des fonctions
critiques
 il doit être possible de garantir que ces fonctions
sont effectivement exécutées dans ce temps
(réservation de ressources)
 ceci demande une structure de système très
particulière

58
Systèmes temps réel
 systèmes temps réel souples (soft):
 les échéances sont importantes, mais ne sont pas

toujours critiques (p.ex. systèmes téléphoniques)

 les processus critiques reçoivent la priorité


Ordonnancement monoprocesseur
Ordonnancement multiprocesseur
Familles d’algorithmes multiprocesseurs

 On distingue en général deux types d’approche pour


l’ordonnancement multiprocesseur :

 Partitionnement: Il s’agit de partitionner l’ensemble des n


tâches en m sous-ensembles disjoints : τ1 , τ2, . . . , τm et
d’ordonnancer ensuite l’ensemble τi sur le processeur Pi avec une
stratégie d’ordonnancement locale monoprocesseur. Les tâches
ne sont donc pas autorisées à migrer d’un processeur à l’autre.
Familles d’algorithmes multiprocesseurs
Familles d’algorithmes multiprocesseurs
Familles d’algorithmes multiprocesseurs

 Stratégie globale: Il s’agit d’appliquer globalement sur


l’entièreté de la plate-forme multiprocesseur une stratégie
d’ordonnancement et d’attribuer à chaque instant les m
processeurs aux m tâches/travaux les plus prioritaires.
 Dans ce cas, outre la préemption des tâches, on autorise
aussi la migration de ces dernières ; c.-`a-d. qu’une tâche
peut commencer son exécution sur un processeur Pj , être
préemptée et reprendre son exécution ultérieurement sur
un autre processeur (disons Pi , i ≠ j).
Familles d’algorithmes multiprocesseurs
Familles d’algorithmes multiprocesseurs
ET AUSSI…
Ordonnancement semi-partitionné
ET AUSSI…
Ordonnancement « clustering »

Vous aimerez peut-être aussi