• Aucun résultat trouvé

Généralisation des algorithmes monoprocesseurs

1.4 Généralisation des algorithmes monoprocesseurs

Dans cette partie, nous nous intéressons à l’ordonnancement multiprocesseur global, par

la généralisation des algorithmes monoprocesseurs. La généralisation des techniques

d’or-donnancement monoprocesseur telles que RM et EDF au cas multiprocesseur consiste à

exécuter lesm (au plus) travaux ayant la plus grande priorité sur les m processeurs.

Ce-pendant, la résolution des compétitions entre travaux de même priorité peut alors poser

problème. Il a été montré que la technique de résolution a de l’influence sur

l’ordonnança-bilité [GFB02]. Par la suite, les politiques qui sont généralisées au cas multiprocesseur par

une approche globale seront notées « G- » suivi du nom de la politique (exemple : G-RM

et G-EDF).

Les tests disponibles pour ces politiques ne permettent pas d’utiliser pleinement les

proces-seurs tout en garantissant l’ordonnançabilité. Ces tests d’ordonnançabilité [ABJ01, BG03a,

BCL05b, SB02, GFB03] dépendent principalement des grandeursu

sum

etu

max

. En outre,

dans la plupart des tests, la présence d’une tâche lourde empêche de conclure sur

l’or-donnançabilité. Ce résultat va permettre la création de nouvelles politiques, présentées

ci-dessous et qui visent à lever l’effet Dhall.

1.4.1 Algorithmes RM-US[ξ], EDF-US[ξ], EDF

(k)

et fpEDF

Les politiques RM-US[ξ] [ABJ01] et EDF-US[ξ] [SB02] dérivent respectivement des

al-gorithmes G-RM et G-EDF. Partant de l’analyse des critères d’ordonnançabilité des

po-litiques RM et EDF, ces nouvelles popo-litiques proposent d’ajouter un seuil sur le taux

d’utilisation au delà duquel les tâches sont considérées à priorité maximale (avec

réso-lution arbitraire des conflits). Ceci permet d’obtenir de meilleures conditions suffisantes

d’ordonnançabilité en visant en particulier la limitation liée àu

max

.

Autrement dit, ces politiques classent les tâches en deux catégories :

siu

i

> ξ, alorsτ

i

est une tâche lourde et sa priorité ainsi que celle de ses travaux est

maximale ;

sinon,τ

i

est une tâche légère et le calcul de la priorité reste inchangé par rapport à

G-RM ou G-EDF.

L’algorithme EDF

(k)

a une approche similaire et propose de fixer une priorité maximale

aux k−1 tâches ayant les plus grands taux d’utilisation du système [GFB03]. Cette

approche permet donc théoriquement de choisir la valeur ktelle que EDF

(k)

se comporte

comme EDF-US[ξ]. L’algorithme PriD complète EDF

(k)

en déterminant automatiquement

la valeur du paramètre k.

Enfin, l’algorithme fpEDF donne une priorité maximale aux tâches ayant un taux

d’utili-sation supérieur à

12

en se limitant aux m−1 premières tâches par ordre décroissant de

taux d’utilisation [Bar04]. On rappelle quem représente le nombre de processeurs.

1.4.2 Algorithme Global-Fair Lateness

L’algorithmeGlobal-Fair Lateness(G-FL), développé pour des systèmes temps réel souples,

propose une modification mineure de G-EDF afin de réduire le retard maximal des

tra-vaux [EA12]. Le retard d’un travail est défini par la différence entre la date de fin du

travail et l’échéance. En pratique, cette modification améliore aussi le nombre de systèmes

correctement ordonnancés.

La priorité d’un travail selon la politique EDF correspond à son échéance absolue (d

i,j

)

alors que G-FL utilise la priorité suivante :

d

i,j

m1

m C

i

(1.10)

Les auteurs affirment que pour des systèmes temps réel souples, l’algorithme G-FL devrait

remplacer G-EDF.

1.4.3 Algorithmes d’ordonnancement à laxité nulle (Zero Laxity)

Les politiques RMZL, FPZL et EDZL sont des algorithmes à priorité dynamique, basés sur

les algorithmes respectifs RM, FP et EDF, et intégrant la notion de laxité. Pour rappel,

la laxité est la marge temporelle d’un travail pendant lequel il peut ne pas être exécuté

sans manquer son échéance (voir Figure 1.3). Lorsqu’un travail devient à laxité nulle, cela

signifie que s’il n’est pas immédiatement exécuté et ce sans interruption, alors il ne pourra

pas respecter son échéance.

Le principe de ces algorithmes « Zero Laxity » est d’attribuer une priorité maximale aux

travaux de laxité nulle afin d’éviter un non respect d’échéance et d’ordonnancer selon RM,

FP ou EDF sinon.

Lorsqu’un système est ordonnançable par G-EDF, alors G-EDF et EDZL se comportent

de manière identique si les travaux des tâches utilisent leur WCET. De plus, il existe des

exemples de cas où un système de tâches est ordonnançable par EDZL et ne l’est pas par

G-EDF (voir figure 1.9). Ainsi, EDZL domine G-EDF [PHK

+

05].

t P1 0 5 ´Ech´eance non respect´ee deτ3 t P2 0 5 G-EDF t P1 0 5 ´Ech´eance respect´ee t P2 0 5 EDZL τ1 τ2 τ3

Figure 1.9 – Exemple où EDZL permet un ordonnancement alors que G-EDF est en

échec. τ

1

: (C

1

= 1, T

1

=D

1

= 2), τ

2

: (C

2

= 1, T

2

=D

2

= 2), τ

3

: (C

3

= 5, T

3

=D

3

= 6)

Parket al.montrent par simulation que EDZL permet aussi d’ordonnancer un nombre plus

important de systèmes que les variantes de G-EDF, EDF-US [SB02] et fpEDF [Bar04]. De

plus, le nombre de préemptions reste similaire à G-EDF.

L’algorithme EDCL (pour Earliest Deadline Critical Laxity) est une variante de EDZL

qui ne change la priorité des travaux ayant atteint une certaine laxité qu’au moment de

l’activation et la terminaison de travaux [KY08a]. Ceci permet de réduire le nombre de

1.4. Généralisation des algorithmes monoprocesseurs 25

préemptions en l’absence de nouveaux évènements. Le nombre de systèmes ordonnançables

est plus faible qu’avec EDZL mais les auteurs annoncent que les résultats sont bons.

Davis et al. ont montré que les ensembles de tâches ordonnançables selon les tests pour

FPZL sont plus nombreux que ceux ordonnançables selon les tests pour EDZL [DK12].

1.4.4 Algorithme Global-Least Laxity First

L’algorithme Least Laxity First, ainsi que sa variante MLLF

1

, s’adaptent facilement à une

architecture multiprocesseur. Pour rappel, LLF rend prioritaire les travaux ayant la laxité

la plus faible, soit les travaux ayant le moins de flexibilité. Tout comme EDZL, G-LLF

rend prioritaire les tâches dont la laxité devient nulle ce qui lui permet d’éviter un certain

nombre d’échecs à l’ordonnancement.

Cette stratégie semble donner de bons résultats et des travaux récents ont montré que les

tests d’ordonnançabilité pour G-LLF donnent un plus grand ensemble de systèmes

ordon-nançables que ceux de EDZL [LES10]. Cependant, la principale critique émise concerne le

nombre important de préemptions et migrations engendré par G-LLF qui pourrait

com-promettre sa mise en pratique.

1.4.5 Algorithme U-EDF

L’algorithme U-EDF est un ordonnanceur multiprocesseur optimal pour des tâches

spora-diques à échéances implicites [NBN

+

12, NFG12]. Les auteurs indiquent que U-EDF n’est

pas basé sur la notion d’équité (fairness) (voir partie 1.5), cependant, du temps est

ré-servé sur les processeurs en fonction des taux d’utilisation des travaux. Des évènements

qui correspondent à des fins de budgets virtuels sont introduits pour permettre d’atteindre

l’optimalité. Notons que l’apparition de cet algorithme s’est faite après les travaux sur les

algorithmes équitables et les approches hybrides dans la perspective de réduire le nombre

de préemptions et migrations par rapport à ces derniers.

Les auteurs présentent U-EDF comme étant une généralisation de EDF « horizontale »

contrairement à G-EDF qu’ils qualifient de « verticale ». Pour illustrer cette notion, les

auteurs proposent l’exemple d’un système composé de deux processeurs et trois travaux

J

1

= (2,6), J

2

= (3,6) etJ

3

= (9,10) avec (c, d) qui représente une exécution dec unités

de temps et une échéance à l’instantd. La figure 1.10a illustre la séquence obtenue pour

G-EDF où l’on peut constater que l’échéance du travail J

3

n’est pas respectée. Cet échec

est causé par le fait que G-EDF favorise l’exécution au plus tôt des travaux sans anticiper

l’impact sur les futurs exécutions.

La figure 1.10b montre une possible généralisation « horizontale » de EDF. Elle consiste à

ordonnancer les travaux avec les plus grandes priorités (c’est-à-dire avec l’échéance la plus

proche) de manière séquentielle sur un premier processeur et à ne commencer l’allocation

sur un autre processeur que si le premier processeur ne peut pas assurer l’ordonnancement

de tous les travaux. Dans l’exemple présenté, le travail J

3

sera exécuté sur le premier et

le deuxième processeur car le premier processeur ne permet pas de traiter l’ensemble des

travaux. Les auteurs qualifient cette approche d’« horizontale » car l’algorithme va d’abord

1. MLLF est capable de gérer une architecture constituée demprocesseurs en considérantLacomme la laxité la plus importante parmi lesmlaxités les plus faibles etDminl’échéance relative du travail avec lam+ 1-ème laxité la plus faible.

tenter de « remplir » un processeur au maximum avant d’allouer un travail à un nouveau

processeur. Malheureusement, la construction de l’ordonnancement telle qui vient d’être

présentée est faite hors-ligne. L’algorithme U-EDF propose une solution pour construire

un tel ordonnancement de manière en-ligne.

P1 P2 0 2 4 d62 d1 d3 8 10 J1 J3 J2

(a) Généralisation « verticale ».

P1 P2 0 2 4 d62 d1 d3 8 10 J1 J2 J3 J3 (b) Généralisation « horizontale ».

Figure 1.10 – Généralisations de EDF verticale et horizontale [NBN

+

12].

L’algorithme U-EDF se divise en deux phases :

1. Lorsqu’un nouveau travail devient actif, les travaux actifs sont assignés aux

proces-seurs en utilisant l’approche horizontale telle que décrite ci-dessus. Pendant cette

phase, du temps est provisionné sur chaque processeur en fonction des taux

d’utili-sation pour les tâches inactives afin de garantir leur exécution avant leur échéance.

2. La seconde phase consiste à ordonnancer les travaux selon l’algorithme EDF-D en

fonction des budgets calculés dans la première phase.

L’algorithme EDF-D est une variante de EDF qui ordonnance les tâches éligibles sur les

processeurs. Une tâche est dite éligible sur un processeur si elle a du temps réservé sur ce

processeur et si elle n’a pas été choisie pour s’exécuter sur un autre processeur d’indice

inférieur (les processeurs étant homogènes, les processeurs sont simplement ordonnés par

un indice). Ensuite EDF-D sélectionne pour chaque processeur la tâche éligible avec la

plus petite échéance comme étant celle devant s’exécuter.

La difficulté de cette approche réside dans la détermination des budgets virtuels à réserver

sur les processeurs lors de l’arrivée d’un nouveau travail. L’algorithme ne pouvant

simple-ment être résumé, un lecteur intéressé par les détails est invité à lire l’article [NBN

+

12].