Concepts de base
Crit `eres d’ordonnancement
Algorithmes d’ordonnancement Ordonnancement de threads
Ordonnancement dans les syst `emes multiprocesseurs
Concepts de base
L’ordonnancement de processus permet de mieux utiliser le CPU Ex ´ecution d ´ecoup ´ee en CPU burst et I/O burst
Pr ´eoccupation principale: distribution des CPU bursts Ordonnancement vise `a profiter du parall ´elisme
•
Maintenir le CPU occup ´e pendant l’attente d’un p ´eriph ´erique•
Maintenir les p ´eriph ´eriques occup ´es pendant l’attente du CPUOrdonnanceur du CPU
l’ordonnanceur `a court-terme choisi parmi les processus ready D ´ecision d’ordonnancement se fait:
1. Lorsqu’un processus passe de running `a waiting 2. Lorsqu’un processus passe de running `a ready 3. Lorsqu’un processus passe de waiting `a ready 4. Lorsqu’un processus termine
Ordonnancement non-pr ´eemptif: sous contr ˆole du processus
•
coop ´eratif: pas de conditions de courseDispatcher
Le module de dispatch transf `ere le contr ˆole au processus s ´electionn ´e
•
Changer le contenu des registres•
Passer en mode utilisateur•
Sauter au bon endroit dans le programmeLatence du dispatcher: temps pour passer d’un processus `a un autre
•
Le temps perdu dans un context-switch inclus des cache-miss Cette latence doit ˆetre minimis ´ee•
Impact significatif si fr ´equence ´elev ´eeCrit `eres d’ordonnancement
Utilisation du CPU
•
A maximiser, traditionnellement, minimiser plus r ´ecemment` D ´ebit: quantit ´e de travail effectif par unit ´e de temps•
A maximiser`Temps d’attente: temps qu’un processus passe dans ready
•
A minimiser`Temps de r ´eponse: d ´elai entre une requ `ete et le d ´ebut de sa r ´eponse
•
A minimiser`Ordonnancement FCFS (FIFO)
Ex ´ecution na¨ıve dans l’ordre d’arriv ´ee; non-pr ´eemptif Processus CPU burst time
P
124
P
23
P
33
Diagramme de Gantt
P
1P
2P
30 24 27 30
Temps moyen d’attente:
(0 + 24 + 27)/3 = 17
Shortest-Job First (SJF)
Ex ´ecute dans l’ordre de dur ´ee, du plus court au plus long
P
2P
3P
10 3 6 30
Temps moyen d’attente:
(0 + 3 + 6)/3 = 3
SJF est optimal: donne le temps d’attente moyen minimum
•
Bien s ˆur, en g ´en ´eral, la dur ´ee d’ex ´ecution est inconnue!•
Le principe est quand m ˆeme fr ´equemment utilis ´e•
On peut utiliser une estimationDeviner la dur ´ee d’ex ´ecution
Estimer la dur ´ee d’ex ´ecution sur la base du comportement pass ´e
•
Le pass ´e est un bon pr ´edicteur du futurt
n dur ´ee effective du CPU burstn τ
n dur ´ee pr ´evue du CPU burstn
α
facteur d’amortissementτ
n+1= αt
n+ (1 − α)τ
nValeur courante de
α
:0.5
Dur ´ee exacte peu importante: ordre de grandeur (10ms vs 10s)
α = 1
: pas de m ´emoireα = 0
: ignore ex ´ecution effectiveShortest Remaining Time First
Comme SJF, mais pr ´eemptif
Processus
Arriv ee ´
CPU burst timeP
10 8
P
21 4
P
32 9
P
43 5
P
1P
2P
4P
1P
30 1 5 10 17 26
Ordonnancement par priorit ´e
Une priorit ´e num ´erique est associ ´ee `a chaque processus L’ordonnanceur choisi le processus de la plus haute priorit ´e
En version pr ´eemptive ou non
SJF et SRTF correspondent `a une priorit ´e de
1/
burst Utilisation d’une priorit ´e combinant plusieurs facteurs•
Priorit ´e indiqu ´ee par l’utilisateur• 1/τ
n, pour avantager les processus courts•
Age, pour ´eviter lesˆ faminesExemple d’ordonnancement par priorit ´e
Processus CPU burst time Priorit ´e
P
110 3
P
21 1
P
32 4
P
41 5
P
55 2
Diagramme de Gantt:
P
2P
5P
1P
3P
4Algorithme du tourniquet (Round Robin)
Pr ´eemption de l’ex ´ecution apr `es ´ecoulement d’un quantum de temps
•
habituellement, de l’ordre de 10ms-100msAccorde un quantum `a chaque processus avant de recommencer Un long processus ne peut pas retarder excessivement un autre Offre l’illusion de l’ex ´ecution simultan ´ee
•
N processus `a la fois, mais N fois plus lentement Choix du quantum important:•
trop grand: d ´eg ´en `ere en FIFO•
trop court: cause perte de temps en context-switchExemple de Round-Robin
Processus CPU burst time
P
124
P
23
P
33
Diagramme de Gantt, avec quantum de 4:
P
1P
2P
3P
1P
1P
1P
1P
10 4 7 10 14 18 22 26 30
Temps d’attente:
(6
(!)+ 4 + 7)/3 = 5.66
(d ´epend du quantum)Queues multi-niveaux
Plusieurs queues ready
•
T ˆaches de fonds, t ˆaches interactives, t ˆaches de syst `eme, ...Chaque queue peut avoir son propre algorithme d’ordonnancement
•
t ˆaches interactives = RR, t ˆaches de fonds = FIFO Ordonnancement entre les queues:•
Par priorit ´e des queues•
RR, possiblement pond ´er ´e (80% interactif, 20% t ˆaches de fonds) Efficace en resources, mais peu ou trop flexibleQueues multi-niveaux `a r ´etroaction
Multi-level feedback queues
Les processus peuvent changer de queue
•
Typiquement, de mani `ere automatique, par ˆage ouτ
nGrande cat ´egorie param ´etr ´ee par:
•
Nombre queues•
Ordonnancement de chaque queue•
Ordonnancement entre les queues (habituellement, priorit ´e)•
Crit `ere de promotion de processus•
Exemple de multi-level feedback queues
N queues
Queue
i
: priorit ´eN − i
; RR avec un quantum de2
iPromotion quand le CPU burst se termine avant 50% du quantum
•
Processus courts et interactifs augmente de priorit ´e D ´emotion quand le quantum se termine avant le CPU burst•
Processus longs diminuent de priorit ´e Promotion r ´eguli `ere de tous les processus•
Evite la famine: temps maximum garanti´Ordonnancement de threads
Distinction entre threads user-level et kernel-level
Si possible, ordonnancement par thread plut ˆot que par processus Proportion du CPU peut ˆetre par thread ou par processus
•
SCS (system contention scope): comp ´etition entre tous les threads•
PCS (process contention scope): comp ´etition entre thread siblings•
Plus g ´en ´eralement, une hi ´erarchieOrdonnancement multi-processeurs
Ordonnancement plus complexe Syst `emes homog `enes
•
Multiprocesseur sym ´etrique: chaque processeur s’ordonnance•
Multiprocesseur asym ´etrique: un processeur se charge des autres Affinit ´e `a un processeur: pr ´ef ´erence pour b ´en ´eficier de la localit ´e•
Affinit ´e hard: un processus reste dans son processeur•
Affinit ´e soft: un processus peut migrer occasionnellement•
Processeurs (et affinit ´es) regroup ´es hi ´erarchiquementEquilibrage de charge ´
load balancing: tenter de maintenir les processeurs ´egalement occup ´es
•
Migration push: t ˆache p ´eriodique de r ´e ´equilibrage•
Migration pull: processeur idle va chercher du travail ailleurs On peut utiliser les deux `a la foisLa migration s’oppose `a l’affinit ´e