Documente Academic
Documente Profesional
Documente Cultură
i=1
(f
i
r
i
)
Temps dexcution total t
c
= max
i
(f
i
) min
i
(r
i
)
Somme pondre des n dexcution t
w
=
n
i=1
w
i
f
i
Maximum lateness L
max
= max
i
(f
i
d
i
)
Nombre maximum de tche en retard N
late
=
n
i=1
miss(f
i
)
miss(f
i
) =
_
0 si f
i
d
i
1sinon
Tableau 2.1 Fonctions de cot pour valuation des performances.
2.7 Ordonnancements classiques
Comme dj mentionn, un systme dexploitation classique contient un ordonnanceur responsable
de rpartir le temps CPU entre les diffrentes tches prsentes dans le systme. Nous prsentons ici
quelques algorithmes dordonnancement, et nous traiterons des algorithmes spciques au temps
rel dans le chapitre 3.
2.7.1 Algorithmes non premptifs
Les algorithmes non premptifs sont appliqus lorsque les tches ne peuvent tre premptes, cest-
-dire o une tche ayant commenc son excution doit forcment la terminer avant quune autre
tche ne puisse dbuter.
Premier arriv premier servi
Cet algorithme fonctionne de la manire la plus simple qui soit. Les tches sont stockes dans une
structure de type FIFO, la premire tche est excute, et lorsquelle termine, la suivante est lance.
Les tches nouvellement actives sont stockes la n de la le dattente.
La gure 2.9 illustre le concept de cet ordonnancement. Nous pouvons noter que les tches T
1
et T
2
doivent attendre un temps important que la tche T
0
se termine.
shortest job rst
An dviter que des tches courtes ne doivent attendre trop longtemps sur des tches longues, il
est possible dappliquer un algorithme o la tche la plus courte est servie en premier. De ce fait,
les tches courtes sont favorises, et le temps dattente moyen est minimis. Un des problmes
de cette approche est le risque de famine des tches longues. Si de nouvelles tches courtes son
rgulirement rveilles, il se peut quelles passent toujours devant une tche longue, empchant
ainsi celle-ci de sexcuter.
La gure 2.10 illustre le fonctionnement de cet algorithme.
Programmation Temps Rel c Yann Thoma // HEIG-VD
2.7. ORDONNANCEMENTS CLASSIQUES 2.11
Figure 2.9 Exemple dordonnancement premier arriv premier servi
Tche Cot Arrive
T
0
8 1
T
1
2 2
T
2
4 4
T
0
0 5 10 15
T
1
T
2
Figure 2.10 Exemple dordonnancement plus court dabord
Tche Cot Arrive
T
0
8 0
T
1
2 0
T
2
4 0
T
0
0 5 10 15
T
1
T
2
2.7.2 Algorithmes premptifs
Dans le cadre premptif, une tche peut tre momentanment interrompue par lordonnanceur an
de laisser une autre tche sexcuter. De ce fait, une tche trs longue na plus de risque de bloquer
des tches plus courtes trop longtemps.
Round robin/tourniquet
Lalgorithme du tourniquet (round robin en anglais) vise traiter les tches avec le plus dquit
possible, en allouant un quantum de temps identique toutes les tches, et les traiter dans un ordre
FIFO. Les tches sont places dans une le dattente, et la premire de la le est excute pendant
un quantum de temps. A la n de ce quantum, si la tche nest pas termine, elle est replace la
n de la le et une nouvelle tche est slectionne depuis le dbut de la le. Si la le est vide, la
tche peut continuer son excution.
La gure 2.11 illustre cet algorithme, avec un quantum de temps gal 2. Nous pouvons noter que la
tche T
0
garde laccs au processeur lorsquelle se retrouve tre la seule en cours dexcution. Il ny
a donc pas de changement de contexte si ceci nest pas ncessaire. Cette technique de tourniquet
Programmation Temps Rel c Yann Thoma // HEIG-VD
2.12 CHAPITRE 2. INTRODUCTION AUX TCHES
correspond la politique standard observe dans les systmes dexploitation, car elle permet
toutes les tches de sexcuter sans risque de famine. Nous pouvons toutefois noter quil sagira
dune variante avec priorit.
Figure 2.11 Exemple dordonnancement tourniquet
Tche Cot Arrive
T
0
8 0
T
1
2 1
T
2
4 3
T
0
0 5 10 15
T
1
T
2
Priorit xe
Lalgorithme du tourniquet traite toutes les tches sur le mme pied dgalit. Hors il est souvent
ncessaire de dnir des priorits entre tches, an par exemple de garantir que la lecture dun
chier audio se fasse de manire uide, mme lorsquune compilation est en cours. Lalgorithme
priorit xe fonctionne comme celui du tourniquet lintrieur dune priorit, et les priorits sont
traites dans lordre. Les tches dune priorit particulire y sont traites selon un tourniquet, pour
autant quaucune tche de plus haute priorit ne soit prte tre excute.
La gure 2.12 illustre cet algorithme, avec un quantum de temps gal 2. Nous pouvons noter que
la tche T
1
, la plus prioritaire, est excute au dpart, puis un tourniquet est effectu pour les deux
autres tches. Cette technique de tourniquet priorit correspond la politique standard observe
dans les systmes dexploitation, car elle permet toutes les tches de sexcuter sans risque de
famine.
Earliest deadline rst
Lalgorithme Earliest Deadline First (EDF) donne la priorit la tche ayant lchance la plus
proche. A chaque fois quune tche est rveille, lordonnanceur rvalue les tches prtes et slec-
tionne celle ayant lchance la plus courte.
La gure 2.13 illustre cet algorithme. Nous reviendrons sur lalgorithme EDF dans le chapitre sui-
vant, tant donn quil sagit dune des politiques dordonnancement les plus utilises.
Programmation Temps Rel c Yann Thoma // HEIG-VD
2.7. ORDONNANCEMENTS CLASSIQUES 2.13
Figure 2.12 Exemple dordonnancement tourniquet avec priorit
Tche Cot Priorit Arrive
T
0
6 1 0
T
1
6 2 0
T
2
4 1 0
T
0
0 5 10 15
T
1
T
2
Figure 2.13 Exemple dordonnancement EDF
Tche Cot Echance Arrive
T
0
6 12 0
T
1
4 8 2
T
2
2 5 3
T
0
0 5 10 15
T
1
T
2
Programmation Temps Rel c Yann Thoma // HEIG-VD
2.14 CHAPITRE 2. INTRODUCTION AUX TCHES
Programmation Temps Rel c Yann Thoma // HEIG-VD
Chapitre 3
Algorithmes dordonnanement temps rel
pour tches priodiques
3.1 Introduction
L
E PROBLME fondamental en programmation concurrente est celui de garantir le respect
des chances des diffrentes tches le constituant. Il existe en outre un grand nombre
de manire dordonnancer un ensemble de tches, et ce notamment en fonction des ca-
ractristiques de celles-ci. Elles peuvent tre indpendantes, dpendantes, priodiques,
apriodiques, elles peuvent partager ou non des ressources, et changer ou non des informations.
Dans ce chapitre, nous nous intressons au cas de tches purement priodiques.
Dans nombre de systmes temps rel, certaines tches doivent sexcuter de manire rpte,
intervalles rguliers. Il pourra par exemple sagir dune tche charge daller vrier la valeur dun
capteur tous les diximes de seconde. Ces tches sont appeles tches priodiques, puisquelles
doivent sexcuter rgulirement, en suivant une priode xe.
Pour la mise au point des algorithmes dordonnancement dans le cadre des tches priodiques, nous
utiliserons la notation suivante :
Variable Description
Un ensemble de tches priodiques
i
Une tche priodique gnrique
i,j
La j
me
instance de la tche priodique
i
r
i,j
Le temps darrive de la j
me
instance de la tche priodique
i
i
Le dphasage de la tche
i
; il sagit du temps darrive de
i,0
(
i
= r
i,0
)
D
i
Echance relative de la tche
i
d
i,j
Echance absolue de la j
me
instance de la tche
i
(d
i,j
=
i
+ (j 1)T
i
+D
i
)
s
i,j
Temps de dbut dexcution de la j
me
instance de la tche
i
f
i,j
Temps de n dexcution de la j
me
instance de la tche
i
Dans la suite de ce chapitre, nous allons en outre faire les hypothses suivantes :
Programmation Temps Rel c Yann Thoma // HEIG-VD
3.2 CHAPITRE 3. ALGORITHMES DORDONNANEMENT TEMPS REL POUR TCHES PRIODIQUES
Hypothse
H1 Les instances dune tche priodique sont actives avec une priode constante
H2 Toutes les instances dune tche ont le mme pire temps dexcution C
i
H3 Toutes les instances dune tche ont la mme chance relative D
i
H4 Toutes les tches sont indpendantes. Il ny a pas de dpendances entre tches
H5 Une tche ne peut se suspendre elle-mme
H6 La surcharge lie aux oprations du noyau est nglige
Nous traiterons ultrieurement les systmes o lhypothse H4 nest pas vrie.
Dans le cas des tches chance sur requte, nous pouvons calculer les temps darrive des tches,
ainsi que leurs chances respectives de cette manire :
r
i,j
=
i
+ (j 1)P
i
(3.1)
d
i,j
= r
i,j
+P
i
=
i
+jP
i
(3.2)
Une tche est dite faisable si toutes ses instances peuvent se terminer en respectant leur chance.
Lensemble des tches ordonnancer est dit ordonnanable (ou faisable) si toutes ses tches de
sont faisables.
3.1.1 Gigue
La gigue observe peut ltre sur diffrentes variables du systme. Nous pouvons dnir les gigues
suivantes :
La gigue de release relative (Relative Release Jitter) dune tche est la dviation maximale des
temps de dmarrage de deux instances conscutives :
RRJ
i
= max
j
|(s
i,j
r
i,j
) (s
i,j1
r
i,j1
)| (3.3)
La gigue de release absolue (Absolute Release Jitter) dune tche est la dviation maximale des
temps de dpart sur toutes les instances :
ARJ
i
= max
j
(s
i,j
r
i,j
) min
j
(s
i,j
r
i,j
) (3.4)
La gigue de n relative (Relative Finishing Jitter) dune tche est la dviation maximale des
temps de n de deux instances conscutives :
RFJ
i
= max
j
|(f
i,j
r
i,j
) (f
i,j1
r
i,j1
)| (3.5)
La gigue de n absolue (Absolute Finishing Jitter) dune tche est la dviation maximale des
temps de n sur toutes les instances :
AFJ
i
= max
j
(f
i,j
r
i,j
) min
j
(f
i,j
r
i,j
) (3.6)
Programmation Temps Rel c Yann Thoma // HEIG-VD
3.1. INTRODUCTION 3.3
3.1.2 Priode dtude
Les ordonnancements de ce chapitre son ddis aux ensembles de tches priodiques. Le fonction-
nement complet du systme est donc cyclique. Lalgorithme dordonnancement doit trouver une
squence de tches, valable sur toute la dure de fonctionnement du systme. Cette squence est
toutefois caractrise par une priodicit de longueur L, tant donn que les tches sont priodiques.
La priode de longueur L est appele priode dtude, ou priode de base.
Pour un ensemble de tches priodiques synchrones (qui dbutent toutes linstant 0), la priode
dtude est :
L = [0, PPCM(P
i
)] (3.7)
O le PPCM dnote le plus petit multiple commun des priodes des tches. Ds lors, si les tches
sont ordonnanables sur la priode dtude, nous pouvons garantir quelles le seront pour un temps
inni, tant donn que lordonnancement pourra tre calcul en rptant la squence de tches
trouve sur cette priode dtude. La priode dtude peut toutefois savrer trs longue, suivant les
relations entre les priodes.
Pour des tches asynchrones, ne dbutant donc pas au mme instant, la priode dtude est :
L = [min{r
i,0
}, 2 PPCM(P
i
) + max{r
i,0
]} (3.8)
O r
i,0
est la date dactivation de la premire occurence de la tche priodique T
i
Et enn, en prsence de tches apriodiques, la priode dtude devient :
L = [min{r
i,0
}, 2 PPCM(P
i
) + max{r
i,0
, r
j
+D
j
}] (3.9)
O r
j
est la date dactivation de la tche apriodique T
j
, et o D
i
est son chance relative.
3.1.3 Taux dutilisation du processeur
Pour un ensemble de n tches priodiques , le facteur doccupation du processeur est la fraction
de temps processeur ncessaire lexcution de cet ensemble de tches. Pour une tche
i
, le facteur
doccupation est dni par :
u
i
=
C
i
P
i
(3.10)
Pour lensemble des tches , le facteur dutilisation est ds lors :
U =
n
i=1
C
i
P
i
(3.11)
Ce facteur U correspond la charge applique par lensemble des tches sur le processeur. Il est
vident que la charge maximale ne doit pas dpasser 1, sans quoi le processeur nest pas mme
dexcuter lensemble des tches.
U =
n
i=1
C
i
P
i
1 (3.12)
U, qui doit donc tre plus petit que 1, dpend en outre des caractristiques des tches, ainsi que de
lalgorithme dordonnancement utilis pour les ordonnancer. Pour un algorithme A particulier et
un ensemble de tches , il existe une valeur U
ub
(, A) au-del de laquelle les tches ne sont pas
ordonnanables. U
ub
est la limite maximale dutilisation du processeur (Upper Bound).
Programmation Temps Rel c Yann Thoma // HEIG-VD
3.4 CHAPITRE 3. ALGORITHMES DORDONNANEMENT TEMPS REL POUR TCHES PRIODIQUES
Si U = U
ub
(, A), alors lensemble utilise entirement le processeur. Une petite modication de
peut ds lors faire dpasser cette limite et rendre lensemble des tches non ordonnanable. Pour
un algorithme A donn, nous pouvons dnir la valeur minimale des U
ub
(Least Upper Bound) :
U
lub
(A) = min
U
ub
(, A) (3.13)
De ce fait, un ensemble de tches est ordonnanable si son facteur dutilisation du processeur est
infrieur cette limite minimale :
U
=
n
i=1
C
i
P
i
U
lub
(A) = min
U
ub
(, A) est ordonnanable (3.14)
La gure 3.1 reprsente, pour un algorithme donn, lordonnanabilit de quatre ensembles de
tches. Si le facteur dutilisation du processeur est infrieur ou gal la limite minimale, alors
lensemble est ordonnanable (
3
), sil est suprieur 1 il nest pas ordonnanable (
3
), et sinon
un test supplmentaire est ncessaire pour tablir son ordonnanabilit (
1
, et
2
).
Figure 3.1 Signication du Least Upper Bound
U
1
U
2
U
3
U
4
Ordonnanable ?
Oui Peut-tre Non
0 U
lub
1
3.2 Rate Monotonic
Lalgorithme Rate Monotonic est un algorithme statique, applicable un ensemble de tches
chance sur requte, o les priorits des tches sont xes et dcide avant le lancement du systme.
La priorit des tches est xe en fonction de leur priode dactivation. Plus une tche a une petite
priode dactivation, plus sa priorit sera haute. Il sagit dun algorithme premptif, lactivation
dune tche de petite priode devant permettre la premption dune tche de priode plus grande.
Cet algorithme est optimal dans le cas des priorits xes, pour .
La gure 3.2 montre un exemple dordonnancement selon lalgorithme Rate Monotonic.
3.2.1 Analyse dordonnanabilit
Une condition sufsante dordonnanabilit est :
n
i=1
C
i
P
i
U
lub
RM
(n) = n(2
1
n
1) (3.15)
Le tableau suivant donne la valeur de U
l
ub(n) pour quelques valeurs de n :
Programmation Temps Rel c Yann Thoma // HEIG-VD
3.3. DEADLINE MONOTONIC 3.5
Figure 3.2 Exemple dordonnancement selon Rate Monotonic
Tche Cot Priode
T
0
2 6
T
1
3 8
T
2
4 24
T
0
0 5 10 15 20 25
T
1
T
2
n U
lub
1 1.000
2 0.828
3 0.780
4 0.757
5 0.743
Nous pouvons calculer U
lub
pour de grandes valeurs de n :
U
lub
= lim
n
n(2
1
n
1) = ln2 0.69 (3.16)
Donc, si U
est plus petit que 0.69, lensemble est ordonnanable. Sil est plus grand, il faut le
comparer U
lub
RM
(n). Sil est plus grand que cette dernire valeur, il reste un test permettant dta-
blir son ordonnanabilit. Il est dcrit dans la section dvolue lalgorithme Deadline Monotonic,
en page 6.
En 2001, une nouvelle condition dordonnanabilit, appele Hyperbolic Bound, a t propose. Il
sagit galement dune condition sufsante mais pas ncessaire :
n
i=1
(U
i
+ 1) 2 (3.17)
Cette condition est moins restrictive que la prcdente, et est donc intressante.
3.3 Deadline Monotonic
Lalgorithme Rate Monotonic est bas sur lhypothse que les tches sont chance sur requte,
cest--dire que lchance dune tche est gale sa priode. Dans certains systmes cette hypo-
thse ne pourra savrer exacte, et les chances pourront tre plus petites que les priodes. Dans
ce cas, lalgorithme Deadline Monotonic est un algorithme optimal dans le cas des algorithmes
priorit statique avec chances plus petites que les priodes. Comme RM, il est premptif.
La priorit dune tche est xe par son chance. Plus son chance est petite, plus sa priorit est
grande.
La gure 3.3 montre un exemple dordonnancement selon lalgorithme Deadline Monotonic.
Programmation Temps Rel c Yann Thoma // HEIG-VD
3.6 CHAPITRE 3. ALGORITHMES DORDONNANEMENT TEMPS REL POUR TCHES PRIODIQUES
Figure 3.3 Exemple dordonnancement selon Deadline Monotonic
Tche Cot Priode Echance
T
0
2 6 5
T
1
3 8 4
T
2
4 24 20
T
0
0 5 10 15 20 25
T
1
T
2
3.3.1 Analyse dordonnanabilit
Une condition sufsante dordonnanabilit est :
n
i=1
C
i
D
i
n(2
1
n
1) (3.18)
Ce test nest toutefois pas vraiment optimal, car la charge du processeur y est surestime. Il est
possible de dduire un autre test, en se basant sur les observations suivantes :
1. Le pire cas au niveau des demandes dutilisation du processeur se trouve au moment o toutes
les tches sont actives simultanment ;
2. Le pire temps de rponse dune tche correspond la somme de son temps dexcution et des
interfrences des tches de priorit suprieure.
Si nous supposons les tches ordonnes selon lordre ascendant de leurs chances, le test corres-
pond vrier que :
i : 1 i n C
i
+I
i
D
i
(3.19)
O I
i
est linterfrence
1
mesure sur la tche
i
:
I
i
=
i1
j=1
_
D
i
P
j
_
C
j
(3.20)
Si ce test passe, alors lensemble de tches est ordonnanable. Toutefois, linterfrence est calcule
en partant du principe quune tche
j
interfre exactement
_
D
i
P
j
_
fois, ce qui nest pas forcment le
cas.
La mthode suivante permet une meilleure approximation de cette interfrence, et donc du temps
de rponse de la tche.
Test en zone critique : calcul du temps de rponse
Si le facteur dutilisation du processeur de lensemble de tches est plus petit que 1, mais plus
grand que U
lub
(n), nous pouvons appliquer le test suivant, propos par Audlsey et al. Ce test est
1. A titre de rappel, pour r R, n = r N, est lentier immdiatemment suprieur r.
Programmation Temps Rel c Yann Thoma // HEIG-VD
3.3. DEADLINE MONOTONIC 3.7
valable pour lalgorithme Rate Monotonic et Deadline Monotonic. Ce test consiste en le calcul du
pire temps de rponse des tches, en prenant en compte les interfrences des tches de priorit
suprieure.
Lide est de partir du pire cas, o toutes les tches sont actives au mme instant. Le temps de
rponse R
i
dune tche
i
est alors la somme de son temps dexcution et du temps dexcution de
toutes les tches de priorit suprieure :
R
i
= C
i
+I
i
(3.21)
O
I
i
=
i1
j=1
_
R
i
P
j
_
C
j
(3.22)
Dans cette quation, le terme
_
R
i
P
j
_
C
j
reprsente linterfrence de la tche j sur la tche i le temps
R
i
.
Nous avons donc :
R
i
= C
i
+
i1
j=1
_
R
i
P
j
_
C
j
(3.23)
Il faut vrier que le temps de rponse soit plus faible que lchance de la tche. Nous nous trou-
vons toutefois devant une quation o R
i
apparat des deux cts de lgalit. Nous pouvons appli-
quer une mthode itrative pour son calcul, en observant que seuls certains points dans lintervalle
[0, D
i
] sont pertinents.
1. Nous commenons par prendre un premier point dapproximation :
R
0
i
=
i
j=1
C
j
(3.24)
2. Si ce temps de rponse est au-del de lchance D
i
, la tche nest pas ordonnanable. Sinon
nous passons au point suivant.
3. Nous calculons le point dapproximation suivant :
R
n+1
i
= C
i
+
i1
j=1
_
R
n
i
P
j
_
C
j
(3.25)
4. Si R
n+1
i
= R
n
i
, nous avons atteint le pire temps de rponse pour la tche, qui peut alors tre
compar D
i
. Sinon, nous reprenons au point 3.
Prenons comme exemple lensemble de tches suivant :
Tche Cot Priode Echance Priorit
T
0
40 100 100 3
T
1
40 150 150 2
T
2
100 350 350 1
Pour T
0
, qui est la tche la plus prioritaire, il suft de vrier que son cot soit plus faible que son
chance.
Programmation Temps Rel c Yann Thoma // HEIG-VD
3.8 CHAPITRE 3. ALGORITHMES DORDONNANEMENT TEMPS REL POUR TCHES PRIODIQUES
Pour T
1
, nous pouvons appliquer la mthode :
R
0
1
=
1
j=0
C
j
= C
0
+C
1
= 80
R
1
1
= C
1
+
0
j=0
_
R
0
1
P
j
_
C
j
= 40 +
_
80
100
_
40 = 80
R
1
1
= R
0
1
, donc la phase itrative est termine.
Comme R
1
= 80 D
1
= 100, T
1
est ordonnanable.
Pour T
2
, nous pouvons appliquer la mthode :
R
0
2
=
2
j=0
C
j
= C
0
+C
1
+C
2
= 180
R
1
2
= C
2
+
1
j=0
_
R
0
2
P
j
_
C
j
= 100 +
_
180
100
_
40 +
_
180
150
_
40 = 260
R
2
2
= C
2
+
1
j=0
_
R
1
2
P
j
_
C
j
= 100 +
_
260
100
_
40 +
_
260
150
_
40 = 300
R
3
2
= C
2
+
1
j=0
_
R
2
2
P
j
_
C
j
= 100 +
_
300
100
_
40 +
_
300
150
_
40 = 300
R
3
1
= R
2
1
, donc la phase itrative est termine.
Comme R
2
= 300 D
2
= 350, T
2
est ordonnanable.
3.4 Earliest Deadline First
Lalgorithme Earliest Deadline First (EDF) donne la priorit la tche ayant lchance la plus
proche. A chaque fois quune tche est rveille, lordonnanceur rvalue les tches prtes et s-
lectionne celle ayant lchance la plus courte. Cet algorithme est appliqu, ici, des tches prio-
diques chance sur requte o la premption est autorise.
La gure 3.4 illustre cet algorithme.
3.4.1 Analyse dordonnanabilit
Lalgorithme EDF est optimal dans le cas premptif. La condition ncessaire et sufsante dordon-
nanabilit est :
n
i=1
C
i
P
i
1 (3.26)
Un ensemble de tches est donc ordonnanable si son taux dutilisation du processeur est plus petit
ou gal 0.
3.4.2 Cas non-premptif
Lalgorithme EDF est optimal dans le cas premptif. A titre indicatif, observons son comportement
si la premption est impossible.
Considrons lexemple suivant deux tches :
Programmation Temps Rel c Yann Thoma // HEIG-VD
3.4. EARLIEST DEADLINE FIRST 3.9
Figure 3.4 Exemple dordonnancement EDF
Tche Cot Priode
T
0
2 5
T
1
3 7
T
2
1 10
T
0
0 5 10 15 20
T
1
T
2
Tche Cot Arrive Echance
T
0
4 0 7
T
1
2 1 5
Dans le cas premptif, lordonnancement trouv est :
T
0
0 5 10
T
1
Nous pouvons observer que la tche T
0
est prempte au temps 1 par la tche T
1
, et lorsque cette
dernire est termine, T
0
peut reprendre son excution. Dans le cas non-premptif, larrive de
la tche T
1
au temps 1 voit la tche T
0
continuer son excution, tant donn quelle ne peut tre
prempte :
T
0
0 5 10
T
1
Nous pouvons donc observer que lchance de T
1
nest pas respecte. Lordonnancement suivant
est une solution possible dans le cadre non-premptif :
T
0
0 5 10
T
1
Programmation Temps Rel c Yann Thoma // HEIG-VD
3.10CHAPITRE 3. ALGORITHMES DORDONNANEMENT TEMPS REL POUR TCHES PRIODIQUES
Cet ordonnancement montre quune solution existe dans ce cadre. Toutefois, EDF traite les tches
ds leur moment darrive. Sans la connaissance a priori des temps darrive des tches, il nest pas
possible, au temps 0, de prendre la dcision de retarder lexcution de T
0
. En effet, ici le processeur
reste inactif durant un quantum de temps, ce qui aurait pu tre prjudiciable suivant le temps darri-
ve de T
1
. Si la premption nest pas autorise, le problme de trouver un ordonnancement faisable
devient NP-dur.
3.5 Least Laxity First
Lalgorithme Least Laxity First (LLF) est, linstar dEDF, un algorithme priorit dynamique. Il
traite des tches priodiques pour lesquelles la premption est autorise.
La rgle dcrivant lalgorithme est simplement que la tche dont la laxit est la plus faible est la
plus prioritaire.
Les dnitions suivantes permettent daborder la notion de laxit :
L = D C : sa laxit nominal. Indique le retard maximum que peut prendre la tche sans
dpasser son chance
D(t) = d t : son dlais critique rsiduel au temps t
C(t) : sa dure dexcution rsiduelle au temps t
L(t) = D(t) C(t) : sa laxit rsiduelle au temps t
Figure 3.5 Exemple dvolution de la laxit dune tche, pour un ordonnancement EDF
T
0
0 5 10 15 20 25 30 35
T
1
L
T
1
(t)
A partir de la dnition de la rgle, nous pouvons dduire deux implmentations de LLF :
1. La laxit rsiduelle est calcule au lancement de la tche. Nous nous trouvons dans un cas de
gure de type EDF
2. La laxit rsiduelle est calcule chaque instant t.
La deuxime option est videmment la plus intressante. Elle permet dexcuter, un instant t, la
tche qui a le moins de marge disposition pour tenir son chance.
3.5.1 Analyse dordonnanabilit
La condition dordonnanabilit est identique celle dEDF. Nous avons donc la condition suf-
sante et ncessaire suivante :
n
i=1
C
i
P
i
1 (3.27)
Programmation Temps Rel c Yann Thoma // HEIG-VD
Bibliographie
[1] Site web Xenomai : http ://www.xenomai.org .
[2] Doug ABBOTT. Linux fo Embedded and Real-time Applications. Newnes, 2003.
[3] Alan BURNS et Andy WELLINGS. Real-Time Systems and Programming Languages.
Addison-Wesley, second edition dition, 1997.
[4] Giorgio C. BUTTAZZO. Hard Real-time Computing Systems. Kluwer Academic Publishers,
2000.
[5] Francis COTTET, Jolle DELACROIX, Claude KAISER et Zoubir MAMMERI. Ordonnance-
ment temps rel. HERMES Science Publications, 2000.
[6] Alain DORSEUIL et Pascal PILLOT. Le Temps Rel en Milieu Industriel. Dunod, 1991.
[7] Bruce Powel DOUGLAS. Real Time UML. Addison-Wesley, third edition dition, 2004.
[8] Jack GANSSLE. The Art of Designing Embedded Systems. Newnes (Elsevier), 2008.
[9] Cameron HUGHES et Tracey HUGHES. Parallel and Distributed Programming Using C++.
Addison-Wesley, 2003.
[10] Omar KERMIA. Ordonnancement temps rel multiprocesseur de tches non-premptives
avec contraintes de prddence, de priodicit stricte et de latence . PhD thesis, Universit
Paris XI, UFR scientique dOrsay, 2009.
[11] Mark H. KLEIN, Thomas RALYA, Bill POLLAK, Ray OBENZA et Michael Gonzlez HAR-
BOUR. A Practioners Handbook for Real-Time Analysis : Guide to Rate Monotonic Analysis
for Real-Time Systems. Kluwer Academic Publishers, 1993.
[12] Phillip A. LAPLANTE. Real-time Systems Design and Analysis. IEEE Press, second edition
dition, 1997.
[13] R.J. WIERINGA. Design Methods for Reactive Systems. Morgan Kaufmann Publishers, 2003.
[14] P. Meumeu YOMSI et Y. SOREL. Extending Rate Monotonic Analysis with Exact Cost of
Preemptions for Hard Real-Time Systems . Dans 19th Euromicro Conference on Real-Time
Systems. ECRTS 07., pages 280290, 2007.
[15] Luigi ZAFFALON. Programmation Synchrone de Systmes Ractifs avec Esterel et les Synch-
Charts. Presses Polytechniques et Universitaires Romandes, 2005.
1