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
sumetu
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τ
iest une tâche lourde et sa priorité ainsi que celle de ses travaux est
maximale ;
•
sinon,τ
iest 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 à
12en 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−m−1
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
3n’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
3sera 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].
Dans le document
Étude et évaluation des politiques d'ordonnancement temps réel multiprocesseur
(Page 34-37)