Vous êtes sur la page 1sur 82

Ordonnancement Processus

Chapitre 6

http://w3.uqo.ca/luigi/

Aperu du chapitre

Ch. 6

Concepts de base
Critres dordonnancement
Algorithmes dordonnancement
Ordonnancement de multiprocesseurs
Ordonnancement temps rel
valuation dalgorithmes

Importance des concepts de ce chapitres

Les mthodes dordonnancement ont des


nombreuses applications

Non seulement en informatique, mais aussi


en gestion:

Ch. 6

Et ont t trs tudies,surtout avec des


mthodes probabilistes et de simulation

Supposons quon parle de diffrents tches


excuter dans une usine dans laquelle il y a
des ressources qui sont des ouvriers et des
outils

Importance dans linformatique

Lutilisation de critres dordonnancement


efficaces est surtout importante pour les grands
centres dinformatique qui sont trs chargs
Chiffres recueillies dans le web: Google, Microsoft:
bien plus d1M de serveurs chaque
Une petite pargne en pourcentage dans cette
situation peut conomiser des sommes
considrables (lectricit, chauffage etc.)

Ch. 6

Il est important de garder les serveurs saturs de travail

Diagramme de transition dtats d`un processus

Ch. 6

Files dattente de processus pour


ordonnancement
file prt

Nous ferons lhypothse que le premier processus dans une file est celui
qui utilise la ressource: ici, proc7 excute.
Ch. 6

Nous dbuterons avec lhypothse quil ny a quune seule UCT

Concepts de base

La multiprogrammation vise obtenir une

LUCT est la ressource la plus prcieuse dans un


ordinateur, donc nous parlons delle

Ch. 6

utilisation optimale des ressources


et aussi un bon temps de rponse pour lusager

cependant, les principes que nous verrons sappliquent


aussi lordonnancement des autres ressources (units
E/S, etc).

Lordonnanceur UCT est la partie du SE qui dcide


quel processus dans la file ready/prt obtient
lUCT quand elle devient libre

Les cycles dun processus

Ch. 6

Cycles (bursts) dUCT et E/S: lactivit dun processus


consiste de squences dexcution sur UCT et dattentes:
- dE/S ou de synchronisation avec autres processus
8

Dure normale des cycles

tant donn la grande vitesse de lUCT par


rapport aux priphriques, la plupart des
cycles dUCT seront trs courts
Cependant il pourrait y avoir des longs
cycles dUCT quand on demandera des
calculs pousss

Ch. 6

Calculs scientifiques etc.

Dure typique des cycles UCT

Observation exprimentale:

Ch. 6

dans un systme typique, nous observerons un grand nombre de


court cycles dUCT, et un petit nombre de long cycles

Les programmes tributaires de lUCT auront normalem. un


petit nombre de long cycles UCT
Les programmes tributaires de lE/S auront normalem. un
grand nombre de court cycles UCT

10

Quand invoquer lordonnanceur UCT

L ordonnanceur UCT doit prendre sa dcision chaque fois que le


processus excutant est interrompu, ce-.-d.
1.
un processus se prsente en tant que nouveau ou se termine
2.
un processus excutant devient bloqu en attente
3.
un processus change dexcutant/running prt/ready
4.
un processus change de attente prt/ready

Ch. 6

tout vnement dans un systme qui cause une interruption de lUCT


implique lintervention de lordonnanceur,
qui devra prendre une dcision concernant quel proc ou thread aura
lUCT aprs

Premption: on a premption si on enlve lUCT un processus


qui lavait et ne la pas laisse de propre initiative

P.ex. premption dans le cas 3, pas de premption dans le cas 2


Plusieurs pbs rsoudre dans le cas de premption, v. manuel
11

Dispatcheur (meilleur franais: rpartiteur)

Le processus qui donne le contrle au


processus choisi par lordonnanceur. Il
doit se proccuper de:
changer de contexte
changer mode usager
ramorcer le processus choisi

Attente de dispatcheur (dispatcher latency)


le temps ncessaire pour excuter les
fonctions du dispatcheur
il est souvent nglig, il faut supposer quil soit
petit par rapport la longueur dun cycle

Ch. 6

12

Critres dordonnancement

Il y aura normalement plusieurs processus


dans la file prt

Quand lUCT devient disponible, lequel choisir?

Critres gnraux:

Ch. 6

Bonne utilisation de lUCT


Rponse rapide lusager

Mais ces critres peuvent tre jugs


diffremment...
13

Critres spcifiques dordonnancement

Utilisation UCT: pourcentage dutilisation


Dbit = Throughput: nombre de processus
qui compltent dans lunit de temps
Temps de rotation = turnaround: le temps
pris par un proc de son arrive sa termin.
Temps dattente: attente dans la file prt
(somme de tout le temps pass en file prt)

Ch. 6

Temps de rponse: le temps entre une


demande de lusager et la rponse

14

Critres dordonnancement: maximiser/minimiser

Utilisation UCT: pourcentage dutilisation

Dbit = Throughput: nombre de processus qui


compltent dans l unit de temps

minimiser

Temps de rponse (pour les systmes interactifs): le


temps entre une demande et la rponse

Ch. 6

minimiser

Temps dattente: attente dans la file prt

maximiser

Temps de rotation (turnaround): temps terminaison


moins temps arrive

maximiser

minimiser
15

Examinons maintenant plusieurs mthodes


dordonnancement et voyons comment elles se
comportent par rapport ces critres
nous tudierons des cas spcifiques
ltude du cas gnral demanderait recours techniques probabilistes ou de
simulation

Ch. 6

16

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 lordre: P1 , P2 , P3
Le diagramme Gantt pour lutilisation de lUCT est:
P1
0

P2
24

P3
27

30

Temps dattente pour P1= 0; P2= 24; P3= 27


Temps attente moyen: (0 + 24 + 27)/3 = 17
Ch. 6

17

Premier arrive, premier servi

Utilisation UCT = 100%


Dbit = 3/30 = 0,1

3 processus complts en 30 units de temps

Temps de rotation moyen: (24+27+30)/3 = 27

P1
0

Ch. 6

P2
24

P3
27

30

18

Tenir compte du temps darrive!

Dans le cas o les processus arrivent moment


diffrents, il faut soustraire les temps darrive
Exercice: rpter 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
0

Ch. 6

arrive P2

P2
24

P3
27

30
19

FCFS Scheduling (Cont.)


Si les mmes processus arrivent 0 mais dans lordre
P 2 , P3 , P1 .
Le diagramme de Gantt est:

P2
0

Ch. 6

P3
3

P1
6

30

Temps dattente pour P1 = 6 P2 = 0 P3 = 3


Temps moyen dattente: (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 lordre darrive de diffrent
processus
Exercice: calculer aussi le dbit, etc.

20

Effet daccumulation (effet convoi) dans FCFS

Supposons (situation normale)

Les processus tributaires de lE/S attendent lUCT: E/S sous-utilise


(*)
Le processus tributaire de lUCT fait une E/S: les procs tributaires de
lUCT excutent rapidement leur cycle UCT et retournent sur
lattente E/S (convoi qui passe): UCT sous-utilise
Processus tributaire de lUCT finit son E/S, puis les autres aussi:
retour la situation (*)
Donc dans ce sens FCFS favorise les procs tributaires de lUCT
Et peut conduire une mauvaise utilisation des ressources sil y a
apport continu de procs longs=tributaires de lUCT
Tant dUCT que de priphriques
Une possibilit: interrompre de temps en temps les proc tributaires
de lUCT pour permettre aux autres procs dexcuter (premption)

Ch. 6

un processus tributaire de lUCT (cycles longs)


et plusieurs tributaires de l`E/S (cycles courts)

On fait a

21

Exemple

Supposons
P1: tributaire de lUCT
P2, P3: tributaires de lE/S

P1

P1 demande une E/S

Ch. 6

P2

P3

UCT libre

Le convoi qui passe


pendant que P1 fait
son E/S

P1

LE/S de P1 a termin mais


les E/S de P2 et P3
continuent
22

Plus Court dabord = Shortest Job First (SJF)

Le processus qui demande moins dUCT part le premier


Optimal du point de vue du temps dattente moyen
(v. le dernier exemple)

P2
0

Ch. 6

P3
3

P1
6

30

Mais comment savons-nous quel processus demande moins


dUCT!
Supposons pour linstant quon puisse

23

SJF avec premption ou non

Avec premption:
si un processus qui dure moins que le restant
du processus courant se prsente plus tard,
lUCT est enleve au proc courant et donne
ce nouveau processus
SRTF: shortest remaining-time first

Ch. 6

Sans premption: on permet au processus


courant de terminer son cycle

24

Example de SJF sans premption


ProcessusArrive

Cycle UCT

P1

P2

P3

P4

SJF (sans premption)

P1
0

P3
7

P2
8

P4
12

Temps dattente moyen = (0+(8-2)+(7-4)+(12-5))/4

(0 + 6 + 3 + 7)/4 = 4
P2 arr
Temps
de. rotation
= (7+(12-2)+(8-4)+(16-5)) /4 = 8
P3 arr. moyen
P arr

16

Ch. 6

Exercice: calculer avec PAPS

25

Exemple de SJF avec premption

Processus

Arrive

Cycle

P1

P2

P3

P4

SJF (premptive)
P1
0

P2
2

P3
4

P2
5

P4
7

P1
11

16

P2 arr. P3 arr. P4 arr

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

Ch. 6

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

26

Plus en dtail: file prt

Ch. 6

Temps des interruptions


Temps 0:
Le seul proc est P1, il est choisi
Temps 2: Interruption cause par larrive de P2
Deux procs dans la file: P1 qui demande encore 5 et P2
qui demande 4: ce dernier est choisi
Temps 4: Interruption cause par larrive de P3
Trois procs dans la file: P1=5, P2=2, P3=1: ce dernier
est choisi
Etc: complter comme exercice

27

Premption ou non

La premption est le cas normal pour lUCT


car larrive dun nouveau proc cause une
interruption et ce moment l

Mais dans quelques ressources la


premption est impossible:

Ch. 6

lordonnanceur devra prendre une dcision sur


le prochain proc excuter

P.ex. dans une imprimante il faut toujours


terminer limpression courante avant den
amorcer une nouvelle
28

Comment dterminer la longueur des cycles lavance?

Quelques mthodes proposent de


dterminer le comportement futur dun
processus sur la base de son pass

Ch. 6

p.ex. mthode de la moyenne exponentielle

29

Diffrentes mthodes en principe

Ch. 6

Hypothse de comportement constant dun


processus:
Un processus qui a eu des cycles dUCT de 3
millisecondes en moyenne continuera comme a
Hypothse de comportement variable dun
processus:
Un processus qui avant avait des cycles dUCT de
3ms, maintenant a allong ces cycles, qui sont de
10ms
La dure des cycles les plus rcents est
considre plus importante pour la prvision des
prochains cycles
30

Estimation de la dure du prochain cycle


hypothse de comportement constant

Ti : la dure du ime cycle de lUCT pour ce


processus
Si : la valeur estime du ime cycle de lUCT pour ce
processus.

Sn+1 lestime courante

Sn lestime prcdente

Un choix simple est:

Nous pouvons viter de recalculer la somme en


rcrivant:

Ch. 6

Sn+1 = (1/n) {i=1 n} Ti (une simple moyenne)

Sn+1 = (1/n) Tn + ((n-1)/n) Sn

Ceci donne un poids identique chaque cycle


31

Estimation de la dure du prochain cycle


hypothse de comportement variable

Nous devons dcider quelle importance


donner
Aux changements plus rcents
Par rapport aux observations prcdentes

Ch. 6

32

Coefficient pour le poids


0

1-

Importance du cycle
le plus rcent

Importance de lestime
prcdente

Pex. si = 0,7, alors 1- = 0,3


Ch. 6

33

Estimation de la dure du prochain cycle


hypothse de comportement variable

Mais les cycles rcents peuvent tre plus


reprsentatifs des comportements venir
La moyenne exponentielle permet de donner
diffrents poids aux cycles plus ou moins
rcents:
Sn+1

Ch. 6

= Tn+ (1-) Sn ;

0 <= <= 1

: le cofficient dimportance
Tn: la dure du cycle le plus rcent
S: lestime
Sn+1 lestime courante (aprs le cycle Tn)
Sn lestime prcdente
34

Pourquoi exponentielle

Par expansion, nous voyons que le poids de


chaque cycle dcrot exponentiellement

Ch. 6

Sn+1 = Tn + (1-)Tn-1 + ... (1-)i Tn-i +


... + (1-)n S1

la valeur estime S1 du 1er cycle peut tre


fixe 0 pour donner priorit max. aux
nouveaux processus

35

Importance de diffrents valeurs de coefficients [Stallings]

Peu dimport. aux cycles rcents


Beaucoup dimport. aux cycles rcs

La dure des vieux cycles perd dimportance rapidement si on donne beaucoup


dimportance aux cycles rcents, et aussi le converse
Ch. 6

Stallings

36

Importance de diffrents valeurs de coefficients [Stallings]

Ch. 6

S1 = 0 (priorit aux nouveaux processus)


Un coefficient plus lev ragit plus rapidement aux
changements de comportement
Stallings

37

Un deuxime exemple [Stallings]

Stallings

Ch. 6

38

Comment choisir le coefficient

Un petit assouplit les changements de comportement dun


processus
Il donne moins dimportance aux cycles rcents
Il est avantageux quand un processus peut avoir des
anomalies de comportement, aprs lesquelles il reprend son
comportement prcdent
Cas limite: = 0

Un gros ragit rapidement aux changements


Il donne plus dimportance aux cycles rcents
Est avantageux quand un processus est susceptible de
changer rapidement de type dactivit et il reste sur a
Cas limite: S n+1 = Tn

Ch. 6

on reste sur lestime initiale

Le dernier cycle est le seul qui compte


39

Exercice: Travailler cet exemple dans le manuel


faire un calcul plus prcis - aussi essayer des coefficients
diffrents

estim.
rel

=0,5

Ch. 6

40

Le plus court dabord SJF: critique

Difficult destimer la longueur lavance


Plus pratique pour lordonnancement travaux que
pour lordonnancement processus

Il y a assignation implicite de priorits: prfrences


aux travaux plus courts

Ch. 6

Normal. on peut plus facilement prvoir la dure dun


travail entier que la dure dun seul cycle

Famine possible pour les travaux aux cycles longs

41

Difficults majeures avec les mthodes discutes

Premier arriv, premier servi, FCFS:


Temps moyen dattente non-optimal

Plus court servi, SJF:


Difficult destimer

les cycles
Famine sil y a apport continu de processus aux cycles courts

Donc besoin dune mthode systmatiquement premptive


Le tourniquet

Ch. 6

Mauvaise utilisation des ressources sil y a apport continu de


processus aux cycles longs (v. effet daccumulation)

si vous faites toujours les devoirs les plus courts en premier, vous pourriez avoir limpression
de faire beaucoup mais vous pourriez ne jamais arriver aux plus longs
si vous faites les devoirs dans lordre darrive, les longs pourraient vous bloquer pour
longtemps
donc votre solution est de donner un peu de temps chacun, cycliquement

42

Le tourniquet

Si jai une seule grande pizza et plusieurs


personnes affames, je pourrais:

Loffrir chacun son tour: attendre que


chacun ait fini avant de passer au suivant

Ch. 6

(mthodes prcdentes)

Ou sinon offrir une tranche la fois chacun et


permettre de revenir

43

Tourniquet = Round-Robin (RR)


Le plus utilis en pratique

Chaque processus est allou une tranche de


temps (p.ex. 10-100 millisecs.) pour excuter

Tranche aussi appele quantum

Sil excute pour tranche entire sans autres


interruptions, il est interrompu par la minuterie et
l UCT est donne un autre processus
Le processus interrompu redevient prt ( la fin de la file)
Mthode premptive
P[0] P[1]
P[7]

P[2]

P[6]

P[3]

La file prt est un


cercle (dont RR)

P[5] P[4]
Ch. 6

44

Exemple: Tourniquet tranche = 20


Processus

Cycle

P1

53

P2

17

P3

68

P4

24

P1

P2

P3

P4

P1

P3

P4

P1

P3

P3

Observez
temps de
0 rotation
20 et37temps57dattente
77 moyens
97 117
121 plus
134levs
154que
162
beaucoup
SJF
(exercice: calculez-les)

Ch. 6

mais aucun processus nest favoris

45

Performance de tourniquet

Ch. 6

Sil y a n processus dans la file prt et la


tranche est t, alors chaque processus
reoit 1/n du temps UCT dans units de
dure max. t
Si t grand FCFS
Si t petit... nous verrons

46

Une petite tranche augmente les commutations


de contexte (temps de SE)

Ch. 6

47

Exemple pour voir limportance dun bon choix


de tranche ( dvelopper comme exercice)

Trois cycles:

A, B, C, tous de 10

Essayer avec:
t=1
t=10

Ch. 6

Dans ce deuxime cas, tourniquet


fonctionne comme FIFO et le temps de
rotation moyen est meilleur

48

Le temps de rotation (turnaround) varie avec la


tranche (exemple travailler)

= FIFO

Exemple qui montre que le temps de rotation moyen n amliore pas


ncessairement en augmentant la tranche (sans considrer les temps de
Ch. 6

commutation contexte)

49

Choix de la tranche pour le tourniquet

doit tre beaucoup plus grande que le temps requis pour excuter le changement de
contexte
devrait permettre le compltement dapprox. 80% des cycles

pour donner le temps la plupart des proc de terminer leur cycle, mais pas trop pour viter de pnaliser les processus
courts

(Stallings)
Ch. 6 V. ex. prec. o les tranches optimales sont 6 et 7

50

Comment dterminer la tranche en pratique

videmment la dure mdiane des cycles


des processus en attente est impossible
dterminer avec certitude!
En pratique, les observations passes
peuvent tre utilises:

Ch. 6

le SE peut garder une trace des dures des


cycles des processus rcemment excuts et
ajuster la tranche priodiquement

51

Priorits

Affectation dune priorit chaque


processus (p.ex. un nombre entier)

souvent les petits chiffres dnotent des hautes


priorits

0 la plus haute

LUCT est donne au processus prt avec


la plus haute priorit
avec ou sans premption
il y a une file prt pour chaque priorit

Ch. 6

52

Problme possible avec les priorits

Famine: les processus moins prioritaires


narrivent jamais excuter
Solution: vieillissement:
modifier la priorit d un processus en fonction
de son ge et de son historique d excution
le processus change de file d`attente

Ch. 6

Plus en gnral, la modification dynamique


des priorits est une politique souvent
utilise (v. files rtroaction ou retour)

53

Files plusieurs niveaux (multiples)

La file prt est spare en plusieurs files, p.ex.


travaux `darrire-plan` (background - batch)
travaux `de premier plan` (foreground - interactive)
Chaque file a son propre algorithme dordonnancement,
p.ex.
FCFS pour arrire-plan
tourniquet pour premier plan
Comment ordonnancer entre files?
Priorit fixe chaque file famine possible, ou
Chaque file reoit un certain pourcentage de temps UCT, p.ex.

Ch. 6

80% pour arrire-plan

20% pour premier plan

54

Ordonnancement avec files multiples


(ex.: serveur principal dune universit)

Ch. 6

Un proc peut tre servi seulement si toutes les files de priorits plus
leves sont vides

55

Files multiples et retour

Un processus peut passer dune file


lautre, p.ex. quand il a pass trop de
temps dans une file
dterminer:

Ch. 6

nombre de files
algorithmes dordonnancement pour chaque file
algorithmes pour dcider quand un proc doit passer
d une file l`autre
algorithme pour dterminer, pour un proc qui devient
prt, sur quelle file il doit tre mis

56

Files multiples et retour


PRIO = 0
la + leve

PRIO = 1

PRIO = 2

Ch. 6

57

Exemple de files multiples retour

Trois files:

Ordonnancement:

Ch. 6

P0: tourniquet, tranche = 8 msecs


P1: tourniquet, tranche = 16 msecs
P2: FCFS
Un nouveau processus entre dans Q0, il reoit 8 msecs
d UCT
S il ne finit pas dans les 8 msecs, il est mis dans Q1, il
reoit 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
58

Exercice

Exemple concret
Dans un systme avec files multiples, un
processus a besoin de 50 secondes dUCT
(sans appels au SE) .
Dans la premire 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?

Ch. 6

59

En pratique...

Ch. 6

Les mthodes que nous avons vu sont toutes


utilises (sauf plus court servi pur qui est
normalement impossible, pourquoi?)
Les SE sophistiqus fournissent aux grants de
grands systmes des librairies de mthodes,
quils peuvent choisir et combiner au besoin aprs
avoir observ le comportement du systme
Pour chaque mthode, plusieurs params sont
disponibles: p.ex. dure des tranches,
coefficients, etc.
Ces mthodes videmment sont importantes
surtout pour les grands ordis qui ont des fortes
charges de travail
60

Aussi

Ch. 6

Notre tude des mthodes dordonnancement est thorique,


ne considre pas en dtail tous les problmes qui se
prsentent dans lordonnancement UCT
P.ex. les ordonnanceurs UCT ne peuvent pas donner lUCT
un processus pour tout le temps dont il a besoin
Car en pratique, lUCT sera souvent interrompue par quelque
vnement externe avant la fin de son cycle
Cependant les mmes principes dordonnancement
sappliquent units qui ne peuvent pas tre interrompues,
comme une imprimante, une unit disque, etc.
Dans le cas de ces units, on pourrait avoir des infos
compltes concernant le temps de cycle prvu, etc.
Aussi, cette tude ne considre pas du tout les temps
dexcution de lordonnanceur, du dispatcheur, etc.
61

Plusieurs UCTs

Dans le pass, la vitesse des UCT augmentait


rapidement avec chaque gnration dordinateurs
Aujourdhui, lingnierie rencontre des limites
pour augmenter la vitesse des UCTs
Donc on se dirige vers la production de plus
dUCTs par ordinateur
Cependant, augmenter le nombre dUCT
nimplique pas une augmentation proportionnelle
de la puissance de lordi, pour des raisons que
nous verrons

Ch. 6

Surtout, la charge de gestion de ces UCTs ralentit


lordinateur
62

Ordonnancement avec plusieurs UCTs


identiques: homognit

Ch. 6

Mthodes symtriques:
chaque UCT peut excuter
lordonnancement et la
rpartition
Une seule liste prt pour
toutes les UCTs (division
travail = load sharing)
Mthodes asymtriques:
certaines fonctions sont
rserves des UCT
spcifiques
Files dattentes spares
pour chaque UCT

UCT
UCT
UCT
UCT
UCT
UCT
UCT
UCT

63

Symtrique ou non?

La manire la plus normale de grer


plusieurs UCT est la symtrique

Cependant lasymtrique a un avantage :

Ch. 6

Plus simple grer


???

64

Symtrique ou non?

La manire la plus normale de grer


plusieurs UCT est la symtrique

Plus simple grer

Cependant lasymtrique a un avantage :

tant donn que chaque UCT excute des


fonctionnalits indpendantes, le temps perdu
en synchronisation entre UCT est rduit!

Ch. 6
Ch. 6

Chapitre suivant

65
65

Systmes temps rel

systmes temps rel rigides (hard):


les chances sont critiques (p.ex. contrle dune chane
d`assemblage, animation graphique)
il est essentiel de connatre la dure des fonctions
critiques
il doit tre possible de garantir que ces fonctions sont
effectivement excutes dans ce temps (rservation de
ressources)
ceci demande une structure de systme trs particulire

systmes temps rel souples (soft):

Ch. 6

les chances sont importantes, mais ne sont pas


toujours critiques (p.ex. systmes tlphoniques)
les processus critiques reoivent la priorit

66

Systmes temps rel:


Problmes dattente dans plus. systmes (ex. UNIX)

Ch. 6

Dans UNIX classique il nest pas permis


deffectuer changement de contexte pendant un
appel du systme - et ces appels peuvent tre longs
Pour le temps rel il est ncessaire de permettre la
premption des appels de systmes ou du noyau
en gnral
Donc Unix classique nest pas considr
appropri pour le temps rel
Mais des varits appropries de UNIX ont t
conues

67

Inversion de priorit et hritage de priorits

Quand un processus de haute priorit doit


attendre pour des processus de moindre
priorit (p.ex. a besoin de donnes produites par
ces derniers)

Ch. 6

Pour permettre ces derniers de finir


rapidement, on peut lui faire hriter la
priorit du processus plus prioritaire

68

Ordonnancement de threads

Ch. 6

Local: la librairie des threads pour une


application donne dcide quel thread
usager obtient un LWP disponible

Global: le noyau dcide quel thread de


noyau excute sur lUCT

69

Ordonnancement et priorits en Solaris 2

Ch. 6

70

Solaris 2: lire dans le manuel pour voir lapplication pratique


de plusieurs concepts discuts

Ch. 6

Priorits et premption
Files multiniveau retour avec
changement de priorit
Tranches plus grandes pour les processus
moins prioritaires
Les procs interactifs sont plus prioritaires
que les les procs tributaires de lUCT
La plus haute priorit aux procs temps rel
Tourniquet pour les fils de priorits gales

71

Mthode dvaluation et comparaison


dalgorithmes (section plutt lire)

Ch. 6

Modlisation dterministe

Modles de files dattente (queuing theory)

Simulation

Implantation

72

Modlisation dterministe

Ch. 6

Essentiellement, ce que nous avons dj


fait en tudiant le comportement de
plusieurs algorithmes sur plusieurs
exemples

73

Utilisation de la thorie des files (queuing th.)

Ch. 6

Mthode analytique base sur la thorie


des probabilits
Modle simplifi: notamment, les temps du
SE sont ignors
Cependant, elle rend possibles des
estimes

74

Thorie des files: la formule de Little

Un rsultat important:
n = W
n: longueur moyenne de la file d attente
: dbit d arrive de travaux dans file
W: temps d attente moyen dans la file (temps de service)
P. ex.
si les travaux arrivent 3 par sec.
W et il restent dans la file 2 secs
n la longueur moyenne de la file sera ???
Exercice: Rsoudre aussi pour etW
Observer que afin que n soit stable, W doit tre stable
Un dbit darrive plus rapide doit impliquer un temps de service
mineur, et vice-versa

Ch. 6

Si n doit rester 6 et monte 4, quel sera W

Utile entre autres pour dterminer lespace allouer pour la file


75

Simulation

Ch. 6

Construire un modle (simplifi...) de la


squence dvnements dans le SE
Attribuer une dure de temps chaque
vnement
Supposer une certaine squence
dvnements extrieurs (p.ex. arrive de
travaux, etc.)
Excuter le modle pour cette squence
afin dobtenir des stats

76

Implmentation

Implmenter lalgorithme
Excuter dans le systme rel ou des
mlanges de travaux typiques (benchmark)
Obtenir des statistiques,

Ch. 6

en tirer des conclusions...

77

Tableau de comparaison
Le tableau suivant fait une comparaison
globale des diffrentes techniques tudies
Assurez-vous de comprendre chaque case

Ch. 6

78

PAPS
FCFS
Tourniq.

Critre
slection

Prempt

Motivation

Temps de
rotat. et atten.

Temps de
systme

Effect sur
processus

Famine

Max [w]

non

Simplicit

Variable

Minim.

Favor. proc.
trib. UCT

Non

Equit

Variable selon
tranche,
Normalement
lev

lev si
tranches
courtes

quitable

Non

Optimisation
des temps

Optimal, mais
souffre si des
procs longs
arrivent au dbut

Peut tre
lev (pour
estimer les
longs. des
trames)

Bon pour
proc.
courts,
pnalise
proc. longs

Possible

vite le problme
de procs longs au
dbut

Meilleur, mme si
des procs longs
arrivent au dbut

Peut tre
lev

Pnalise
plus encore
proc. longs

Peut tre
lv

Variable

Tour fixe

oui

PCS
SJF

Min[s]

non

PCS
SJF
premp.

Min[s-e]

oui

Files
multiniv.

v. dtails

oui

Varie la longueur
des tranches en
fonction des
besoins

w: temps total dans file prt jusqu prsent;


Ch.s:6temps

demand;

Variable

Possible

Peut tre
vite

e: temps en exec jusqu prsent


Famine est renvoi infini

79

Points importants dans ce chapitre

Files dattente pour UCT


Critres dordonnancement
Algorithmes dordonnancement
FCFS: simple, non optimal
SJF: optimal, implantation difficile

moyenne exponentielle

Priorits
Tourniquet: slection du quantum

valuation des mthodes, thorie des files,

Ch. 6

formule de Little
80

Manuel: Pas sujet dexamen

Ch. 6

Sections 6.6, 6.7, 6.8

81

Question sur tourniquet (Round Robin)

Ch. 6

Lorsque un processus a un temps de cycle inferieur au quantum ou


simplement finit son excution l'intrieure du quantum, l'UCT assigne le
temps restant pour le prochain processus disponible ou bien attend-elle la
fin du quantum (restant de cette faon du temps dans lequel l'UCT est libre).
Je vous pose cette question, car j'ai trouv des rponses diverses dans la
littrature.
----------Rponse
Il faudrait des raisons trs particulires pour laisser lUCT libre (idle) en
attente que le temps du quantum passe. Je ne doute pas que ces raisons
pourraient exister (p.ex. ordonnanceur rigide qui ne peut intervenir qu
intervalles fixes, possiblement dans un systme temps rel). Cependant la
solution normale est que quand un processus laisse lUCT, normalement
pour un appel au systme, alors lordonnanceur trouve tout de suite un
autre processus excuter, sil y en a un. Cest la solution utilise dans mes
notes de cours, v. lexemple.

82

Vous aimerez peut-être aussi