• Aucun résultat trouvé

Ordonnancement de tâches apériodiques avec gestion de surcharge

3. ALGORITHMES BASÉS SUR GREEN-BWP 149

3.1 BG-Green-BWP

3.1.1 Principe de fonctionnement

Avec BG-Green-BWP, les jobs bleus sont exécutés quand c’est possible c’est-à-dire quand il n’y a pas de jobs rouges à l’état prêt. Ainsi les jobs rouges et bleus sont ordonnancés selon l’algorithme Green-BWP. Les tâches apériodiques arrivant dans le système commencent leur exécution seulement si aucun job rouge ou bleu n’est prêt et si l’énergie disponible est suffisante de façon à assurer que la batterie soit pleine au prochain réveil d’un job rouge.

3.1.2 Exemple illustratif de BG-Green-BWP

Nous reprenons le même exemple illustratif. La Figure6.4illustre l’ordonnancement des tâches périodiques et apériodiques selon BG-Green-BWP.

Les tâches apériodiquesϕ1etϕ2arrivent à l’instant t=0. Comme les jobs rougesτ1,1etτ2,1sont prêts, ils sont

ap´eriodiques t τ2 t τ1 t t 15 30 45 60 12 24 36 48 60 ϕ1(0, 9, 15) ϕ2(0, 3, 8) ϕ3(20, 7, 15) ϕ1 ϕ2 ϕ3 job rouge job bleu τ1(3, 12, 12, 2, 7) τ2(3, 15, 15, 2, 8) E(t) 1 2 3 4 5 6

FIGURE6.4 – Ordonnancement selon BG-Green-BWP

les plus prioritaires et sont exécutés selon Green-BWP. A l’instant t=6, il n’y a ni job rouge ni job bleu prêt, on peut exécuter des tâches apériodiques. ϕ1 est choisie pour être exécutée. Celle-ci ne sera exécutée que si l’énergie disponible est suffisante de sorte à avoir le niveau de batterie pleine lors du prochain réveil d’un job rouge. BG-Green-BWP suppose le pire-cas qui considère que si l’occurrence d’une tâche est bleue, le prochain job de cette tâche est rouge. Par conséquent, dans notre cas, comme à l’instant t=6, les jobsτ1,2 etτ2,2 sont bleus, nous supposons que les prochaines occurrences des tâches sont rouges. Ainsi le prochain réveil est celui du jobτ1,3et vautrmin= 24.

L’énergie disponible pour exécuterϕ1est calculée ainsi :Edisp(6) = E(6) + (rmin− 6)Pr− C = 3 + 36 − 6 = 33. Comme Edisp(6) est positive, ϕ1commence son exécution à l’instant t=6, et continue à s’exécuter tant que l’énergie disponible est positive et qu’aucun job rouge ou bleu n’est réveillé. A l’instant t=12, le job bleuτ1,2 est réveillé et est le plus prioritaire, donc l’exécution deϕ1est interrompue. La laxité énergétique du système à l’instant t=12 est calculée telle queSlackEnergy(12) = E(12) + (24− 12)Pr− E1 = 5 + 24− 7 = 22. CommeSlackEnergy(12) est positive, τ1,2commence son exécution.

Ensuite, à l’instant t=15, le job bleuτ2,2est choisi pour être exécuté. Le calcul de la laxité énergétique est fait. Comme SlackEnergy(15) = 26, τ2,2 commence son exécution. A l’instant t=18,ϕ1 est choisie pour être exécutée. Le calcul de l’énergie disponible avant le prochain réveil d’un job rouge est fait. Le prochain réveil d’un job rouge estrmin = 36. Comme Edisp = E(18) + (36− 18)Pr− 6 = 32, ϕ1continue son exécution. Et ainsi de suite..

Dans cet exemple,ϕ1, ϕ2 etϕ3 ont des temps de réponse respectifs de 21, 24 et 24 unités de temps. Si l’on rapporte les durées d’exécution des tâches par rapport aux temps de réponse obtenus, les temps de réponse

normalisés deϕ12 etϕ3 sont respectivement de 0.375, 0.125 et 0.291. Ceci montre que malgré le fait que le système soit moyennement chargé temporellement et énergétiquement, les temps de réponse sont très longs. BG-Green-BWP a l’avantage d’offrir une QoS globale égale à 100% puisque sur cet exempleUp< 1.

Ci-après, nous proposons l’algorithme Green-AWP qui a le même principe que BG-Green-BWP sauf que les tâches apériodiques sont plus prioritaires que les jobs bleus.

3.2 Green-AWP

3.2.1 Principe de fonctionnement

L’algorithme Green-AWP (Aperiodic When Possible) sous-entend que les tâches apériodiques sont exécutées quand il n’y a aucun job rouge à l’état prêt. Il a le même principe que BG-Green-BWP sauf que s’il n’y a aucun job rouge prêt, les tâches apériodiques sont les plus prioritaires. Par conséquent, les jobs bleus sont exécutés seulement s’il n’y a ni job rouge ni tâche apériodique à l’état prêt.

A chaque instant t, l’ordonnanceur choisit le job à exécuter :

• S’il existe au moins un job rouge à l’état prêt, celui qui a la plus proche échéance est choisi.

• Sinon si la liste des tâches apériodiques bloquées est non vide, la tâche apériodique la plus ancienne est choisie.

• S’il n’y a pas de jobs rouges prêts et si la liste des tâches apériodiques bloquées est vide, le job bleu prêt qui a la plus proche échéance est choisi.

Ensuite si le job à exécuter est périodique, celui-ci est exécuté selon Green-BWP. Sinon si le job à exécuter est apériodique, la quantité d’énergie disponible avant le prochain réveil d’un job rougerminest calculée telle que Edisp(t) = E(t) + (rmin− t)Pr− (Emax− Emin). Si Edisp(t) est positive et l’énergie dans la batterie est suffisante, la tâche apériodique sélectionnée est autorisée à s’exécuter sur le processeur.

3.2.2 Exemple illustratif

La Figure6.5illustre l’ordonnancement des tâches périodiques et apériodiques selon Green-AWP.

Comme les jobs rougesτ1,1etτ2,1sont prêts, ils sont les plus prioritaires et sont exécutés selon Green-BWP.

ap´eriodiques t τ2 t τ1 t t 15 30 45 60 12 24 36 48 60 ϕ1(0, 9, 15) ϕ2(0, 3, 8) ϕ3(20, 7, 15) ϕ1 ϕ2 ϕ3 job rouge job bleu τ1(3, 12, 12, 2, 7) τ2(3, 15, 15, 2, 8) E(t) 1 2 3 4 5 6

FIGURE6.5 – Ordonnancement selon Green-AWP

A l’instant t=6, il n’y a aucun job périodique prêt. Doncϕ1 est choisie et ne démarre son exécution que si l’énergie disponible jusqu’au prochain réveil d’un job rouge est positive. Green-AWP suppose que les tâches apériodiques sont plus prioritaires que les jobs bleus. Par conséquent, dans notre cas, comme à l’instant t=6,

3. ALGORITHMES BASÉS SUR GREEN-BWP 151 les jobsτ1,2etτ2,2sont bleus, nous supposons que les prochaines occurrences des tâches sont rouges. Ainsi le prochain réveil est celui du job rougeτ1,3et vautrmin = 24. L’énergie disponible pour exécuter ϕ1est calculée ainsi :Edisp(6) = E(6) + (rmin− 6)Pr− C = 3 + 36 − 6 = 33. Comme Edisp(6) est positive, ϕ1commence son exécution à l’instant t=6, et continue à s’exécuter tant que l’énergie disponible est positive et qu’aucun job rouge n’est réveillé. A l’instant t=12, le job bleuτ1,2est réveillé cependant il est moins prioritaire queϕ11

continue alors son exécution comme l’énergie dans la batterie est suffisante et l’énergie disponible est toujours positive.

A l’instant t=15,ϕ1finit son exécution, et comme il n’y a aucun job rouge prêt,ϕ2est choisie pour être exécu-tée. L’énergie disponible à l’instant t=15 est calculée de façon à assurer que la batterie soit pleine au prochain ré-veil d’un job rouge,rmin = 24 : Edisp(15) = E(15)+(rmin−15)Pr−C = 6+18−6 = 18. Comme Edisp(15) est positive,ϕ2 commence son exécution. Celle-ci termine son exécution à l’instantt = 18, et comme il n’y ni job rouge ni tâche apériodique à l’état prêt, le job bleuτ1,2est choisi pour être exécuté. La laxité énergétique du système est calculée à l’instantt = 18 telle que SlackEnergy(18) = E(18)+(24−18)Pr−E1 = 4+12−7 = 9. Comme SlackEnergy(18) est positive, τ1,2commence son exécution. Cependant à l’instantt = 20, ϕ3 est réveillée et interrompt l’exécution deτ1,2. L’énergie disponible est calculée à l’instantt = 20 telle qu’au réveil du job rougeτ1,3la batterie soit pleine,Edisp(20) = E(20) + (rmin− 20)Pr− C = 3 + 8 − 6 = 5. Comme Edisp(20) est positive, ϕ3commence son exécution tant qu’aucun job rouge n’est réveillé, que l’énergie dispo-nible est positive et que l’énergie dans la batterie est suffisante. A l’instantt = 22, l’énergie disponible n’est plus suffisante doncϕ3arrête son exécution. Ainsi, pendant deux unités de temps, le processeur est inactif et donc la batterie se recharge jusqu’à devenir complètement pleine au réveil du job rougeτ1,3. Ensuite, à l’instant t = 27, Edisp(27) = E(27)+(30−27)Pr−C = 5+6−6 = 5. Comme Edisp(27) est positive, ϕ3continue son exécution. A l’instantt = 29, l’énergie disponible restante n’est plus suffisante et donc ϕ3arrête son exécution et le processeur est inactif pour recharger la batterie. A l’instantt = 30, la batterie est pleine et le job rouge τ2,3s’exécute pendant 3 unités de temps. Enfin, après avoir recalculé l’énergie disponible jusqu’au prochain réveil d’un job rougermin = 30, comme Edisp(33) est positive, ϕ3continue son exécution et est complètement exécutée à l’instantt = 36. Et ainsi de suite..

Dans cet exemple,ϕ1, ϕ2 etϕ3 ont des temps de réponse respectifs de 15, 18 et 16 unités de temps. Si l’on rapporte les durées d’exécution des tâches par rapport à leur temps de réponse, les temps de réponse normalisés deϕ1, ϕ2 etϕ3 sont respectivement de 0.6, 0.16 et 0.43. Ceci montre que les temps de réponse obtenus avec Green-AWP sont nettement meilleurs que ceux obtenus avec BG-Green-BWP. Cependant, ceci a pour conséquence de dégrader la QoS au niveau des tâches périodiques. Avec Green-AWP, on obtient une QoS globale sur cet exemple égale à 77.5%.

3.3 Algorithmes basés sur le serveur TBS

Notre objectif est ici de proposer une solution qui améliore les performances obtenues par Green-AWP. 3.3.1 Principe de fonctionnement

Les algorithmesT BS-Green-BWP et T BSop-Green-BWP fonctionnent en assignant une échéance fictive à toute tâche apériodique non critique arrivant dans le système. Ensuite, ils ordonnancent les tâches apériodiques conjointement aux tâches périodiques telles que les jobs rouges et apériodiques soient ordonnancés selon EDF et soient toujours plus prioritaires que les jobs bleus. A chaque fois, qu’un job périodique ou apériodique veut s’exécuter, il nécessite de calculer la laxité énergétique du système. Si celle-ci est positive et si l’énergie disponible dans la batterie est suffisante, le job est exécuté. Nous rappelons que la différence entreT BS-Green-BWP etT BSop-Green-BWP réside dans le calcul de l’échéance fictive. En effet,T BSop-Green-BWP prend en compte le niveau d’énergie disponible dans la batterie au moment du calcul de l’échéance.

Les conditions d’ordonnançabilité étudiées dans le cas de Green-RTO s’appliquent également dans le cas de Green-BWP. De plus, comme les formules pour assigner une échéance fictive à une tâche apériodique, ne prennent en compte que les jobs rouges dans le système, il en découle que les formules avec Green-BWP sont identiques aux formules6.10 et6.11 étudiées dans le cas de Green-RTO (cf. Section 2.2.1). Ci-après, nous présentons des exemples illustratifs d’ordonnancement avec TBS-Green-BWP etT BSop-Green-BWP.

3.3.2 Exemple illustratif avec TBS-Green-BWP ap´eriodiques t τ2 t τ1 t t 15 30 45 60 12 24 36 48 60 ϕ1(0, 9, 15) ϕ2(0, 3, 8) ϕ3(20, 7, 15) ϕ1 ϕ2 ϕ3 E(t) 1 2 3 4 5 6 15 22 35 job rouge job bleu τ1(3, 12, 12, 2, 7) τ2(3, 15, 15, 2, 8)

FIGURE6.6 – Ordonnancement selon TBS-Green-BWP

La Figure6.6illustre l’ordonnancement des configurationsT et ϕ selon TBS-Green-BWP. U

p = 0.4 et U

e = 0.45, alors US = 0.6 et Ues = 0.55. A l’instant t=0, les tâches apériodiques ϕ1 etϕ2 sont réveillées, les échéances fictives calculées sont respectivementda

1 = 0 + max( 9 0.6 ,  15 0.55∗2) = 15 et da 1 = max(0, 15) + max( 3 0.6 ,  8 0.55∗2) = 22.

Ensuite,ϕ1 etϕ2 sont ordonnancées conjointement aux jobs périodiques selon Green-BWP. A l’instantt = 0, le job rougeτ1,1est celui qui a la plus proche échéance. Après avoir calculé la laxité énergétique du système et avoir obtenu une valeur positive égale à22, le job rouge τ1,1 commence son exécution. Ensuite à l’instant t=3, le jobτ2,1est le plus prioritaire, la laxité énergétique du système est calculée en prenant en considération la consommation des jobs τ2,1 et ϕ1 telle que SlackEnergy(3) = E(3) + (d2,1 − 3)Pr − (E2,1+ E1a) = 5 + 24− (8 + 15) = 6. Comme SlackEnergy(3) est positive alors le job rouge τ2,1commence son exécution. Il termine à l’instant t=6, et c’est le job apériodiqueϕ1 qui est le plus prioritaire. Comme la laxité énergétique a déjà été calculée entre l’instant t=6 et t=15 et que celle-ci est positive, et puisque l’énergie disponible dans la batterie est suffisante (E(6) = 3), ϕ1commence son exécution.ϕ1finit son exécution à l’instant t=15.ϕ2, a l’échéanceda2 = 22 et est la plus prioritaire. La laxité énergétique du système à l’instant t=15 est calculée et vautSlackEnergy(15) = E(15) + (22− 15)Pr− E2a = 6 + 14− 8 = 12. Comme SlackEnergy(15) est positive,ϕ2commence son exécution à l’instant t=15.

A l’instantt = 18, il n’y a aucun job rouge ou apériodique prêt, le job bleu τ2,2 est choisi pour commencer son exécution.SlackEnergy(18) = E(18) + (30− 18)Pr− 8 = 4 + 24 − 8 = 20 donc τ2,2commence son exécution. Or à l’instantt = 22, la tâche apériodique ϕ3 arrive et l’échéanceda

3 = 35 lui est attribuée. Par conséquent,τ2,2arrête son exécution et commeSlackEnergy(20) est positive, ϕ3 commence son exécution. Et ainsi de suite..

Nous observons une amélioration de 9 unités de temps, du temps de réponse deϕ3obtenus avec TBS-Green-BWP par rapport à celui obtenu avec Green-AWP. On obtient respectivement pour les tâches apériodiquesϕ1, ϕ2etϕ3, des temps de réponse égaux à 15, 18, 7 qui sont identiques à ceux obtenus avec TBS-Green-RTO.

Les temps de réponse normalisés correspondant aux tâchesϕ12 etϕ3 sont respectivement égaux à 0.6, 0.18 et 1. TBS-Green-BWP présente un grand avantage par rapport à TBS-Green-RTO au niveau de la QoS globale obtenue. En effet, dans l’exemple6.2, on obtient la QoS minimale qui vaut 50% alors que TBS-Green-BWP permet de minimiser le temps de réponse tout en garantissant une meilleure QoS qui vaut 77.5%. 3.3.3 Exemple illustratif avecT BSop-Green-BWP

La Figure6.7représente l’ordonnancement des configurationsTetϕ selon l’algorithme T BSop-Green-BWP. CommeUp = 0.4 et Ue = 0.45, alors US = 0.6 et Ues = 0.55. Les tâches apériodiques ϕ1 etϕ2 arrivent à l’instant t=0, les échéances fictives calculées sont respectivementda1 = 0 + max( 9

0.6 ,l0.5515 −6 2

m