• Aucun résultat trouvé

Ordonnancement Earliest Deadline First

Chapitre 3 Etat de l’art 25

3.2 Ordonnancement monoprocesseur

3.2.5 Ordonnancement Earliest Deadline First

Les r´esultats suivants sont issus de [33]. Nous d´efinissons les deux ensembles suivants :

• spi(t) = {j ∈ [1, n], j 6= i, Dj− Jj ≤ t + Di} ; • spi(t) = {j ∈ [1, n], Dj− Jj > t + Di}.

Par construction, si un flux quelconque τj appartient `a spi(t), alors il existe au moins un paquet de τj

(le paquet g´en´er´e en −Jj) de priorit´e sup´erieure ou ´egale `a celle de m, le paquet de τig´en´er´e `a l’instant t. En revanche, si τj appartient `a spi(t), alors tous les paquets de τj ont une priorit´e strictement inf´erieure `a celle de m, quelque soient leurs instants de g´en´eration.

Avant de pr´esenter la propri´et´e donnant le temps de r´eponse pire cas d’un flux quelconque τi, nous rappelons les trois lemmes suivants, ´etablissant :

• le d´elai maximum subi par un paquet de τidˆu `a l’effet non-pr´eemptif direct ;

• l’instant de d´emarrage au plus tard d’un paquet de τig´en´er´e `a l’instant t ;

• les instants `a tester pour le calcul du temps de r´eponse pire cas du flux τi.

Lemme 3.2.6 En contexte monoprocesseur, lorsque les flux sont ordonnanc´esEDF, le d´elai maximum subi par le paquet d’un flux quelconque τig´en´er´e `a l’instant t ≥ −Jidˆu `a l’effet non-pr´eemptif direct est ´egal `a : δi(t) = max 0 ; maxj∈spi(t){Cj} − 1.

Lemme 3.2.7 En contexte monoprocesseur, lorsque les flux sont ordonnanc´esEDF, l’instant de d´emarrage au plus tard du paquet d’un flux quelconque τig´en´er´e `a l’instant t ≥ −Jiest ´egal `a :

Wi(t) = P j∈spi(t)  1 +jmin(t+Di−Dj;Wi(t))+Jj Tj k · Cj+jt+Ji Ti k · Ci+ max  0; max j∈spi(t) {Cj} − 1  .

Lemme 3.2.8 En monoprocesseur, lorsque les flux sont ordonnanc´esEDF, le temps de r´eponse pire cas d’un flux τiest atteint par un paquet g´en´er´e `a un instant t = t0i + k · Ti ≤ max(0; maxk6=i{Dk− Jk} − Di) + P, avec t0i ∈ [−Ji, −Ji+ Ti[, k ∈ N et P =P P CMj∈[1,n]{Tj}.

A partir des trois lemmes pr´ec´edents, nous pouvons ´etablir la propri´et´e suivante, donnant le temps de r´eponse pire cas d’un flux quelconque τi pour l’ordonnancementFP.

Propri´et´e 3.2.3 En contexte monoprocesseur, lorsque les flux sont ordonnanc´es EDF, si U ≤ 1, alors le temps de r´eponse pire cas d’un flux quelconque τiest ´egal `a :

Ri= max t∈Si {Wi(t) − t} + Ci, avec : Wi(t) = P j∈spi(t)  1 +jmin(t+Di−Dj;Wi(t))+Jj Tj k · Cj+jt+Ji Ti k · Ci+ max  0; max j∈spi(t) {Cj} − 1  et Si = S−Ji+Ti t0

i=−Ji Si(t0i) et Si(t0i) l’ensemble des instants t = t0i + k · Ti, k ∈ N, tels que t < max(0; maxk6=i{Dk− Jk} − Di) + P.

3.2.6 Ordonnancements associant priorit´es fixes et priorit´es dynamiques

Nous pr´esentons maintenant trois exemples d’ordonnancements de typeFP/DP, `a savoir :FP/MLF,FP/EDF

etFP/FIFO. Chacun de ces ordonnancements consid`ere le degr´e d’importance comme le param`etre principal d’ordonnancement et la priorit´e dynamique comme le param`etre secondaire.

3.2.6.a FP/MLF (Fixed Priority / Maximum Laxity First )

Cet ordonnancement, o`u la priorit´e dynamique est bas´ee sur la laxit´e, est similaire `a MUF (Maximum

Urgency First) [25, 36]. Un paquet m d’un flux quelconque τi, g´en´er´e `a l’instant t0 avec un ´ech´eance rela-tive Di, a une laxit´e ´egale `a : t0+ Di− Ci(t), avec Ci(t) le temps de traitement du paquet m restant `a r´ealiser

`a l’instant t.

L’avantage de l’ordonnancementMLF est sa capacit´e `a d´etecter le non-respect d’une ´ech´eance avant la fin d’ex´ecution d’un paquet (ou avant le d´ebut d’ex´ecution d’un paquet en contexte non-pr´eemptif). Cepen-dant, [33] montre queMLFn’est pas optimal en non-pr´eemptif, contrairement `aEDFqui reste optimal lorsque les instants d’arriv´ee des paquets ne sont pas connus `a priori.

3.2.6.b FP/EDF (Fixed Priority / Earliest Deadline First )

En monoprocesseur, l’ordonnancementEDFa ´et´e prouv´e optimal en contexte pr´eemptif et non-pr´eemptif, lorsque les instants d’activation des paquets ne sont pas connus `a priori [28, 18]. En d’autres termes, siEDFne trouve pas de solution faisable pour un probl`eme d’ordonnancement donn´e, alors il n’existe pas de solution pour ce probl`eme. Un paquet m d’un flux quelconque τi, g´en´er´e `a l’instant t0avec une ´ech´eance relative Di, a une ´ech´eance absolue ´egale `a : t0+ Di. Avec l’ordonnancementFP/EDF, la priorit´e dynamique est bas´ee sur l’´ech´eance absolue.

[37] montre comment calculer les temps de r´eponse pire cas d’un ensemble de tˆaches sporadiques ordon-nanc´ees suivant l’ordonnancementFP/EDFen contexte pr´eemptif. Il est ´egalement montr´e comment calculer le temps de blocage maximum, c’est-`a-dire le temps maximum perdu `a cause de l’exclusion mutuelle. Mais ces r´esultats ne peuvent pas ˆetre appliqu´es directement au contexte non-pr´eemptif en ajoutant simplement le facteur de blocage associ´e `a la non-pr´eemption. En effet, cela conduirait `a un temps de r´eponse pessimiste (voir la sous-section pr´ec´edente).

3.2.6.c FP/FIFO (Fixed Priority / First In First Out )

FP/FIFOest l’impl´ementation la plus utilis´ee deFP. A notre pr´esente connaissance, l’utilisation deFIFO

pour arbitrer les flux de mˆeme priorit´e fixe n’est pas pris en compte dans l’analyse pire cas du temps de r´eponse [27, 28].

Par ailleurs, [38] pr´esente un nouvel algorithme d’ordonnancement, nomm´eRPQ(Rotating Priority Queues), o`u les flux sont ordonnanc´esFP, les paquets de mˆeme priorit´e fixe ´etant ins´er´es dans la mˆeme file d’attente et trait´esFIFO. L’id´ee est d’´emuler l’ordonnancementEDFen ´echangeant p´eriodiquement les priorit´es des files d’attente FIFO. Contrairement `aEDF, cet ordonnancement ne n´ecessite pas d’op´eration de tri d`es l’arriv´ee d’un nouveau paquet dans l’ordonnanceur. Ici, nous ne souhaitons pas ´emuler l’ordonnancementEDF avec des priorit´es fixes mais fournir des garanties d´eterministes sur le temps de r´eponse et la gigue de chacun des flux lorsque les paquets sont ordonnanc´esFP/DP, la priorit´e fixe d’un flux n’´etant jamais modifi´ee. En effet, nous consid´erons le degr´e d’importance d’un flux comme crit`ere principal, et non son ´ech´eance. Nous nous int´eressons plus particuli`erement aux ordonnancementsFP/FIFOetFP/EDF. En effet, FP/FIFOest largement utilis´e etFP/EDFdomineFP/FIFOsous certaines hypoth`eses (voir section 5.8, page 77).

3.3. ORDONNANCEMENT DISTRIBUE´ 33

3.2.6.d Mod`ele `a base de trajectoires

En monoprocesseur, [39] a propos´e un mod`ele math´ematique `a base de trajectoires pour calculer des bornes sur les temps de r´eponse pire cas de tˆaches r´ecurrentes. Une trajectoire, ou histoire du syst`eme, correspond `a un triplet particulier : (s´equence des instants d’activation, s´equence des dur´ees d’ex´ecution, s´equence des ´ech´eances relatives). La priorit´e est d´efinie pour une instance de tˆache. Dans le cas d’un ordon-nanceur combinant plusieurs algorithmes d’ordonnancement, la priorit´e est vue comme un vecteur dont la

ii`eme composante repr´esente la priorit´e pour le ii`eme algorithme d’ordonnancement. La borne sur le temps

de r´eponse est obtenue `a l’aide d’une fonction majorant la demande de travail. Diff´erents mod`eles de tˆaches sont consid´er´es.

Les bornes trouv´ees en ordonnancement pr´eemptif ne sont pas forc´ement atteintes car les r´esultats non-pr´eemptifs sont d´eduits des r´esultats non-pr´eemptifs apr`es introduction d’un facteur de blocage (voir section 3.2.2, page 27). De plus, ce mod`ele n’´etant disponible qu’en contexte monoprocesseur, il n’est pas retenu dans cette ´etude, car nous nous int´eressons `a un environnement distribu´e.

3.3 ORDONNANCEMENT DISTRIBUE´

Deux types d’approche existent pour la d´etermination du temps de r´eponse maximum de bout-en-bout d’un flux dans le cas distribu´e, `a savoir :

• l’approche stochastique, consistant `a ´etudier le comportement g´en´eral du r´eseau. Cette approche conduit

`a des temps de r´eponse de bout-en-bout probabilistes ou en moyenne [40, 41] ;

• l’approche d´eterministe, bas´ee sur une analyse pire cas du comportement du r´eseau. Cette approche

conduit `a des temps de r´eponse pire cas de bout-en-bout [42, 20].

Nous nous int´eressons ici `a la seconde approche puisque nous souhaitons fournir des garanties d´eterministes sur le temps de r´eponse de bout-en-bout et la gigue de bout-en-bout de tout flux dans le r´eseau. Dans ce contexte, la d´etermination du temps de r´eponse de bout-en-bout d’un flux peut se faire suivant deux tech-niques diff´erentes : l’approche holistique et le network calculus, d´efinies ci-dessous.

3.3.1 Approche holistique

L’approche holistique [43] consid`ere le sc´enario pire cas sur chacun des nœuds visit´es par un flux, en con-sid´erant la gigue maximale introduite par les nœuds pr´ec´edents. Si aucun contrˆole de la gigue n’est r´ealis´e, la gigue maximale augmente de nœud en nœud. Dans ce cas, le temps de r´eponse minimum et maximum sur le nœud h induisent une gigue sur le nœud h + 1, qui conduit `a des temps de r´eponse minimum et maximum sur ce nœud et donc `a une gigue sur le nœud suivant, et ainsi de suite.

Cette approche peut aboutir `a une borne tr`es, voire trop pessimiste sur le temps de r´eponse de bout-en-bout dans la mesure o`u elle consid`ere des sc´enarios pire cas sur chacun des nœuds visit´es, conduisant ´eventuellement `a des sc´enarios impossibles. En effet, le sc´enario constitu´e par la juxtaposition des sc´enarios pire cas sur chacun des nœuds est g´en´eralement irr´ealisable : un sc´enario pire cas se d´eroulant sur un nœud n’engendre pas n´ecessairement un sc´enario pire cas sur le nœud suivant.

Plus pr´ecis´ement, consid´erons un flux quelconque τi, i ∈ [1, n], suivant une ligne de diffusion compos´ee de q nœuds, num´erot´es de 1 `a q. Nous notons respectivement Rmaxhi et Rminhi les temps de r´eponse maximum et minimum du flux τisur le nœud h et Jihla gigue maximale de τien entr´ee du nœud h. L’approche holistique proc`ede de mani`ere it´erative, en commenc¸ant sur le nœud 1.

• Connaissant la valeur de J1

i, la gigue d’activation de τi, nous calculons Rmax1i en supposant ˆetre en contexte monoprocesseur. Par ailleurs, Rmin1i = Ci1.

• Pour tout nœud h ∈]1, q], Jh

i = P

k=1..h−1(Rmaxki − Rminki) + (h − 1) · (Lmax− Lmin). Nous

calculons alors Rmaxhi en supposant ˆetre en contexte monoprocesseur. Par ailleurs, Rminhi = Cih; Une borne sur le temps de r´eponse de bout-en-bout est donn´ee par :Pq

h=1Rmaxhi−Pq

h=2Jih+(q−1)·Lmax. Nous verrons plusieurs exemples d’application de cette approche dans le chapitre 6, lorsque nous compare-rons nos r´esultats avec ceux obtenus par l’approche holistique.