Vous êtes sur la page 1sur 14

Ordonnancement

Introduction
Un ordonnanceur ( scheduler) comporte deux parties :

ordonnanceur de haut niveau (Long Term Scheduling): politique de dcision, affectation de priorit
ordonnanceur de bas niveau ou distributeur ( Short Term Scheduling ou dispatcher) : affectation
dun processeur un processus

Pour lordonnanceur de haut niveau, trois concepts sont dtailler :

Mode de dcision

Il sagit de spcifier des instants o les priorits des processus sont values et compares
et o des processus sont slectionns pour excution. Entre deux instants conscutifs,
lallocation de processeurs aux processus ne change pas.

- mode non pr-emptif : un processus en excution continue jusqu ce quil se termine ou se


bloque (non adquat pour les systmes temps rel et temps partag)

- mode pr-emptif : un processus en excution peut tre interrompu par diverses causes : un
nouveau processus arrive, un processus existant est rveill, un temps q sest coul, la
priorit dun processus prt est devenue plus grande que celle du processus actif, ....

compromis : la pr-emption slective. Elle consiste assigner chaque processus p une paire
de bits (up, vp) :

up = 1 si p peut pr-empter un autre processus et 0 dans le cas contraire


( up reprsente la capacit de premption dun processus)

vp = 1 si p peut tre pr-empt par un autre processus et 0 dans le cas


contraire
( vp reprsente une priorit dexcution).

Fonction de priorit

A tout moment une priorit est affecte un processus du fait du rsultat de lapplication
dune fonction de priorit : ses variables sont divers paramtres (lis au processus ou au
systme) et la valeur retour est la priorit . Les paramtres utiliss sont usuellement :

besoins mmoire
temps dutilisation CPU
temps rel dans le systme ( temps dutilisation CPU + temps dattente)
temps total de service
Ordonnancement
Solution des exercices

Solution de l'exercice 1
Le schma ci-dessous dcrit l'enchanement des processus :

P1 P2 P3 P4 P5 tot. moy.
FIFO 10 11 13 14 19 67 13,4
SJF 19 1 4 2 9 35 7
RR 19 2 7 4 14 46 9,2

Le tableau, ci-dessus, indique les temps de prsence, dans le systme, des processus. La dernire colonne dcrit le
temps moyen pass par chaque processus. Il est clair que, sur cet exemple, la stratgie SJF est la meilleure.

Solution de l'exercice 2
Comme pour l'exercice prcdent, on trouve ci-dessous la chronologie des vnements :
P1 P2 P3 total moyenne
FIFO 4 6 4 14 4,66
LIFO 4 7 1 12 4
SJF 6 2 4 12 4
SRT 7 2 1 10 3,33
HRN 6 3 4 13 4,33
RR 7 4 2 13 4,33

Les rsultats ci-dessus indiquent que SRT est, pour cet exemple, la meilleure politique.

Solution de l'exercice 3
On reprendra les politiques de l'exemple prcdent et les rsultats chronologiques et synthtiques sont consigns
dans le tableau ci-dessous :

P1 P2 P3 P4 P5 total moyenne
FIFO 3 7 7 6 8 31 6,2
LIFO 20 7 2 10 5 44 8,8
SJF 3 9 2 6 8 28 5,6
SRT 3 9 2 6 8 28 5,6
HRN 3 9 5 6 8 31 6,2
RR 6 10 5 9 8 38 7,6

Les deux politiques les plus intressantes sont ici SJF et SRT.
Solution de l'exercice 4
Rappelons que chaque estimation est calcule partir de l'estimation prcdente et de la dure effective :

Sn+1=aTn+(1-a)Sn

Le tableau suivant donne les dures estimes et relles des bursts :

a = 0,8 a = 0,5
tape n Tn
Sn Sn+1 Sn Sn+1

0 10 2 10 5
1 6 2 5,2 5 5,5
2 4 5,2 4,24 5,5 4,75
3 6 4,24 5,65 4,75 5,38
4 4 5,65 5,93 5,38 4,69
5 13 5,93 11,59 4,69 8,84
6 13 11,59 12,72 8,84 10,92
7 13 12,72 12,94 10,92 11,96

Le calcul des carts entre les prvisions et la ralit donne un cart type de 3,28 pour a=0,8 et 3,73 pour a=0,5.

Solution de l'exercice 5
On peut rsumer dans un tableau la progression des deux processus P1 et P2 :

temps de
processus service atteint temps rel r Priorit
a
P1 2 2 1
P2 3 5 4,5
P1 2 3 2
P2 4 6 3,67
P1 2 4 3
P2 5 7 6,16
P1 2 5 4
P2 6 8 7
P1 2 6 5
P2 7 9 7,83
P1 2 7 6
P2 8 10 8,66

etc......

P1 2 20 19
P2 20 23 19,5
P1 2 21 20
P2 21 24 20,33
P1 2 22 21
P2 23 25 21,16
P1 2 23 22
P2 24 26 22

On constate que le processus P2, bnficiant d'une plus grande priorit, obtient le premier le processeur. Cette
situation se poursuit jusqu' ce que la priorit de P1 rattrape celle de P2, c'est dire 21 units de temps aprs le
dpart de l'observation.
Ordonnancement
Exercices

Exercice 1
5 processus, P1, P2, P3, P4, P5 sont dans une file d'attente dans cet ordre (P1 est le premier, P5 est le
dernier). Leur excution demande un temps total de service exprim en units arbitraires :

processus P1 P2 P3 P4 P5
temps de service estim 10 1 2 1 5

1) Dcrire l'excution des processus dans le cadre des politiques d'ordonnancement FIFO, SJF, RR (avec un
quantum de 1).

2) Quelle est ,de ces trois politiques, celle qui correspond un temps minimal d'attente moyen par
processus ?

Exercice 2
Trois processus P1, P2, P3 ont t chargs sur un systme informatique aux dates indiques ci-dessous ;
leur demande en dure de service est galement indique (units de temps arbitraires).

processus date arrive dure de service


P1 0 4
P2 0 2
P3 3 1

On considre les politiques d'ordonnancement suivantes : FIFO, LIFO, SJF, SRT, HRN, RR . Pour les
politiques pr-emptives, le quantum est gal 1 unit de temps.
Comparer ces diverses politiques.

Exercice 3
On considre l'ensemble suivant de processus :

temps de
processus date d'arrive
service
1 0 3
2 1 5
3 3 2
4 9 5
5 12 5

Comparer, sur cet exemple, les diverses politiques d'ordonnancement.

Exercice 4
Un processus interactif effectue les "bursts" successifs de dures 6, 4, 6, 4, 13, 13, 13. La dure initiale
estime d'un burst est 10.

Comparer l'estimation et la ralit dans le modle de la moyenne pondre exponentielle (on prendra a = 0.8
et a = 0.5).
Exercice 5
Soit deux processus p1 et p2 dans un systme utilisant la politique d'ordonnancement PDS. La table suivante
donne pour chaque processus le temps a de service atteint, le temps rel r pass dans le systme et la
fonction f-1(a) , un instant donn :

processus a r f-1(a)
p1 2 2 a/2
p2 3 5 a/6

1) Quel est le processus qui obtient cet instant le processeur ?

2) Aprs quelle priode de temps les priorits des deux processus seront gales ?
priorits externes
adaptation temporelle
charge du systme

Le temps total de service peut tre estim dans quelques systmes. La priorit affecte est
alors dautant plus grande que le temps total de service est court :

- un processus "court" devrait tre termin rapidement


- traiter dabord les travaux courts rduit le temps total dexcution de tous
les processus

Les priorits externes sont utilises pour diffrencier les classes dutilisateurs et de
processus

exemple :

processus temps rel : hautes priorits


processus interactifs : moyennes priorits
processus batch : basses priorits

Ladaptation temporelle prend en compte le fait que lurgence terminer une tche peut
varier dans le temps.

exemple : accrotre la priorit au fur et mesure que le temps du processus dans le systme
augmente
( problme des prdictions mto : elles ne peuvent arriver aprs la date correspondante).

Rgle darbitrage

Cette rgle est faite pour les conflits entre processus de mme priorit. Plusieurs
possibilits choix au hasard, choix suivant la position dans la file, .....

Principaux algorithmes
Examinons maintenant quelques algorithmes dordonnancement

FIFO ( First In/ First Out)

Lordre est celui de larrive des processus dans la file des processus prts. La fonction de priorit est P(r)
= r o r est le temps rel pass dans le systme. Le mode de dcision est non pr-emptif; la rgle
darbitrage est le choix au hasard pour des processus qui arrivent au mme moment.
LIFO ( Last In / First Out)

Lordre est linverse du prcdent : le dernier arriv est le premier servi. La fonction de priorit est P(r) = -
r o r reprsente toujours le temps rel pass dans le systme.Le mode de dcision et la rgle darbitrage
sont comme dans FIFO.

SJF ( Shortest Job First)

On suppose que le temps total de service t est connu lavance ( bien adapt aux processus batch o
lutilisateur peut indiquer un temps max). La fonction de priorit est P(t) = -t. Le mode de dcision est non
pr-emptif. La rgle darbitrage est la chronologie ou le choix au hasard.

La difficult est videmment l'estimation du temps de service. Ceci peut s'oprer, par exemple, de la
manire suivante, pour un processus interactif qui s'excute comme une srie de "bursts" de dure
d'excution relle Ti. Au n+1 me burst, on peut estimer le temps de service par la moyenne :

Cette relation peut tre r-crite sous la forme

En fait, dans la pratique, on gnralise cette relation en employant des facteurs de pondration a (compris
entre 0 et 1) et 1-a :

Sn+1 = a Tn + (1-a)Sn

Cette mthode s'appelle la pondration exponentielle.

SRT ( Shortest Remaining Time)

Version pr-emptive du SJF. Si a est le temps CPU consomm et t le temps total estim de service, la
fonction de priorit est P(a,t) = a-t. La pr-emption a lieu larrive du nouveau processus dans la file des
prts.

HRN (Highest Ratio Next)

Cet algorithme permet de prendre en compte l'attente d'un processus en basant la priorit sur le rapport :
P(w,t)= (w+t)/t

o w est le temps pass attendre et t le temps total estim de service. Un processus qui n'attend pas
possde un rapport de 1 (cas notamment d'un processus qui vient d'entrer dans le systme) ; un processus
qui attend longtemps possde un rapport R bien plus grand que 1.

RR ( Round Robin)

Un quantum de temps Q est impos. Lorsquun processus actif a consomm son quantum Q, il doit quitter le
processeur et est plac en queue dune file. La rgle darbitrage est donc cyclique. Tous les processus ont
par contre la mme priorit. Notons que le quantum Q peut tre constant dans le temps ou varier avec la
charge du systme : soit T le temps ncessaire un cycle de tous les processus ; on peut poser :

Q = T/n o n est le nombre de processus actifs pendant T units de temps.

Trs utilis dans les systmes en temps partag.

MLF ( MultiLevel Feed-back)

Il est dfini n niveaux de priorit. Pour chaque niveau i est dfini un temps Ti qui est le temps maximum
dutilisation du processeur au niveau i.Sil y a dpassement, la priorit du processus est dcrmente de 1 et
celui-ci passe donc au niveau de priorit immdiatement infrieur. Le temps Ti de chaque niveau peut tre
dfini par :

Ti = 2n-iTn

Tn est le temps maximum d'utilisation du processeur au niveau n ; Tk = 2n-k.Tn est le temps maximum
d'utilisation du processeur au niveau k.
La rgle darbitrage peut tre chronologique ( type FIFO) ou cyclique ( type RR). Le temps total consomm
CPU pour un processus au niveau k ( 0 = k < n) est a tel que :

En utilisant la relation

on obtient

Cette relation permet de dterminer la priorit du processus, sachant quil a atteint un temps de service a .
P(a) = k et, en posant i = n-k, P(a) = n - i o i est dtermin par :

On constate que :

si a < Tn alors i = 0 et P(a) = n, plus haute priorit


si a > Tn.( 2n - 1), alors P(a) < 1 ce qui est interprt comme une erreur.

PDS ( Policy-Driven Scheduling)

Cette mthode est adaptative en ce sens que laffectation des priorits dpend de la charge du systme.
Elle est base sur lutilisation dune fonction f(r), appele fonction politique, qui prescrit la corrlation
entre le temps rel pass par le processus dans le systme et le montant des services que le processus
devrait avoir cet instant. On peut mesurer ce montant de service par le temps pendant lequel le processus
a utilis des ressources; plus prcisment, linstant r, le montant de service s(r) reu par un processus est
de la forme :

tj(r) est la dure dutilisation de la ressource j linstant r ; wjest le poids associ la ressource j et n est
le nombre de ressources distinctes gres par le scheduler..

Pour simplifier ici la mthode PDS, on ne prendra en considration quune seule ressource, le processeur;
donc s(r) = a. Dans un diagramme ( a, r ), un point de coordonnes ( ai , ri ) exprime la relation entre le temps
pass dans le systme et le temps "utile" dutilisation du processeur.
Un point ( ai = f(ri), ri = f-1(ai )) exprime ce qui est souhait. Pour un temps de service ai on peut donc
mesurer la diffrence ri - f-1(ai ) entre ce qui est rel et ce qui est souhait. On pourra alors prendre
comme priorit P(ai , ri ) cette diffrence

P(ai , ri ) = ri - f-1(ai)

La priorit saccrot lorsque le temps passe et que le processus ne reoit pas les services souhaits. En fait,
lorsque P est positive, cela signifie que le service accord nest pas la hauteur des esprances, tandis que
si P est ngatif, cela signifie que lon prend "de lavance" et, dans ce cas, on pourrait stopper le processus
pour laisser la place des processus moins favoriss.

Parmi les exemples prcdents, reprsentatifs des algorithmes dordonnancement des divers systmes
dexploitation, il parat invitable de rechercher lequel est le meilleur. La rponse cette question nest pas
simple; tout dpend du critre de performance retenu, mais aussi du mode dutilisation ( batch,
conversationnel, temps partag, temps rel, ...)

Les 5 premiers algorithmes ont t dfinis, lorigine, pour des systmes fonctionnant en traitement par
lot. On peut donc tenter de les comparer entre eux en prenant un exemple simple : 3 processus sont
prsents dans le systme, ils diffrent par leur temps darrive et le temps de service demand :

processus date d'arrive temps de service


p1 0 4 On considrera que le quantum de temps est de
p2 0 2 1 unit
p3 3 1

Rsultats :
calcul des temps

p1 p2 p3 moyenne
FIFO 0+4 4+2 3+1 4,66
LIFO 0+4 5+2 1+1 4,33
SJF 2+4 0+2 3+1 4,00
SRT 3+4 0+2 0+1 3,33
x+y = temps d'attente + temps d'excution

Contrairement la situation prcdente, dans les systmes temps partag, le critre de slection est le
temps de rponse ce qui implique lutilisation dun algorithme pr-emptif : SRT, RR, MLF, PD.

RR : le plus simple implmenter, mais le choix du quantum Q reste dlicat


MLF : permet de distinguer entre plusieurs groupes de processus ( une priorit par groupe)
PD : plus adaptative, mais plus dlicate mettre en oeuvre.

Vous aimerez peut-être aussi