• Aucun résultat trouvé

Gestion de la surcharge dans les systèmes temps réel autonomes

4. ORDONNANCEURS PROPOSÉS 75

Algorithm 5 Green-BWP t : temps courant

T (t) : la liste des tâches périodiques bloquées à l’instant t J(t): la liste des jobs rouges prêts à l’instant t

β(t) : la liste des jobs bleus prêts à l’instant t while VRAI do

idle← VRAI

ifJ(t) = not(φ) then

soitτi le job rouge ayant la plus petite échéance else ifβ(t) = not(φ) then

soitτi le job bleu ayant la plus petite échéance end if

ifE(t) > Eminthen

CalculerSlackEnergy(t) ifSlackEnergy(t)≥ 0 then

idle← FAUX else

/*SlackEnergy(t) < 0 */ if E(t)=Emaxthen

idle← FAUX else

/*Emin < E(t) < Emax*/ CalculerSlackT ime(t) ifSlackT ime(t) = 0 then

idle← FAUX end if

end if end if

if idle = FAUX andSlackEnergy(t)≥ 0 then Executeτi

end if end if end while

• La liste des jobs bleus prêtsβ(t) à l’instant t. Green-BWP est caractérisé par les éléments suivants :

• idle : un booléen prenant la valeur FAUX quand le processeur est actif ( i.e. exécution d’un job) et VRAI quand il est en mode veille ( i.e. recharge de la batterie).

• SlackTime(t) : la laxité temporelle calculée à l’instant t en utilisant l’algorithme EDL. Elle représente le temps disponible pour recharger la batterie sans pour autant compromettre l’exécution des jobs rouges avant leur échéance. Elle est calculée en utilisant EDL adapté au modèle BWP (cf. la Section 2.2.2) • SlackEnergy(t) : la laxité énergétique qui représente le surplus d’énergie dans le système consommable à

l’instant t et d (i.e. d est l’échéance du job prêt le plus prioritaire) en considérant les contraintes tempo-relles de tous les jobs rouges prêts ayant leur échéance entre t et d. Sa valeur est déterminée en calculant la laxité énergétique de tous les jobs rouges prêts ayant leur date de réveil supérieure ou égale à l’instant tet leur échéance inférieure ou égale à d :

SlackEnergy(t) = min(slackEnergy(t, τi,k) (3.30) • SlackEnergy(t,τi,k) :le surplus d’énergie qui peut être consommé entre l’instant t et l’ échéancedi,k du

jobτi,k (c’est leki`emejob de la tâcheτipouvant être rouge ou bleu). SlackEnergy(t, τi,k) = E(t) +

Z di,k

t

Pr(x)dx (3.31)

avec :

E(t) : l’énergie restante dans la batterie à l’instant t. Pr(x) : la puissance reçue à l’instant x.

Ai,k : l’énergie totale requise par les jobs rouges ayant leur instant de réveil supérieur ou égal à l’instant tet ayant une échéancedjinférieure ou égale àdi,ktelle queAi,k =P

rj≥t,dj≤di,kEj. Ej : l’énergie requise par le job de la tâcheτj.

Complexité algorithmique :

La complexité de calcul de la laxité temporelle et la laxité énergétique sous Green-BWP est la même que celle observée sous Green-RTO.

4.2.3 Exemple illustratif

Nous reprenons la même configuration que celle considérée pour l’ordonnancement avec Green-RTO. La Figure

3.10illustre l’ordonnancement de cette configuration selon Green-BWP ainsi que la courbe de variation du niveau d’énergie dans la batterie. A l’instantt = 0, la batterie est pleine. Les jobs rouges sont ordonnancés

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 t τ1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 S R t τ2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 Energie dans la batterie 1 t 7

S: La laxit´e ´energ´etique est n´egative.

R: L’´energie dans la batterie n’est pas suffisante.

FIGURE3.10 – Ordonnancement selon l’algorithme Green-BWP

suivant EDF tant qu’il y a suffisamment d’énergie dans la batterie. À l’instantt = 16, la laxité énergétique est négative. Par conséquent, aucun job ne peut être exécuté et la laxité temporelle est calculée pour déterminer le temps maximal disponible permettant de recharger la batterie sans compromettre l’exécution des jobs rouges.

5. EVALUATION DES PERFORMANCES 77 Ainsi, le processeur pourra être inactif pour que la batterie se recharge. A l’instantt = 18, le job de la tâche τ1 est rouge parce que le job bleu de la tâcheτ1a manqué son échéance. Comme il est le plus prioritaire, il débute son exécution et s’exécute pendant 3 unités de temps. A l’instantt = 21, il n’y a aucun job rouge à l’état prêt alors le job bleu de la tâcheτ2 commence son exécution et la finit à l’instant t=26.

A l’instant t = 31, le job bleu de la tâche τ2 est interrompu car la batterie est vide. Suite à cela le calcul de la laxité temporelle est fait et le processeur reste inactif pendant 4 unités de temps. A l’instantt = 35, la batterie est pleine et le job bleu de la tâcheτ2continue son exécution.

Comme on peut le remarquer à partir de la Figure3.10, l’ordonnanceur Green-BWP exécute plus de jobs dans le respect de leurs contraintes temporelles et énergétiques que l’ordonnanceur Green-RTO. Dans l’exemple considéré, 70% des jobs sont exécutés avec Green-BWP alors que 50% le sont avec Green-RTO (cf. Figure3.9).

5 Evaluation des performances

Cette partie a pour objectif de décrire les résultats de simulations effectuées dans le but d’évaluer comparati-vement la performance des ordonnanceurs Green-RTO, Green-BWP et EDeg. Rappelons que notre objectif est d’utiliser au mieux l’énergie disponible en vue d’optimiser la QoS, c’est-à-dire le ratio des jobs périodiques qui s’exécutent dans le respect de leur échéance.

5.1 Eléments de simulation

Pour cette étude, nous avons développé un simulateur en langage C. Ce simulateur est composé d’un générateur de tâches périodiques qui prend en entrée les paramètres suivants :

• n : le nombre de tâches périodiques constituant la configuration,

• PPCMmax : la valeur représentant le ppcm maximal des périodes des tâches constituant la configuration, • Up: la charge processeur,

• ¯Pe: la puissance moyenne de consommation énergétique, • si: la valeur des pertes uniformes.

En sortie, la configuration de tâches temps réel fermes obtenue estT ∗ = {τi(Ci, Di, Ti, si, Ei), i=1 à n}. • Les tâches périodiques sont indépendantes, préemptables et à échéances sur requêtes (Di = Ti).

• Les périodes des tâches Ti sont aléatoirement choisies et leur choix dépend du PPCMmax donné en entrée.

• Les durées d’exécution des tâches au pire-cas Ci sont générées aléatoirement et le choix dépend de Up =Pn

i=1CTii.

• Les demandes énergétiques des tâches Ei sont générées aléatoirement et le choix dépend de ¯Pe = Pn

i=1ETii.

• Aucune corrélation n’existe entre les valeurs deEiet deCi.

Les valeurs du facteur équivalent du processeurUp et du facteur équivalent énergétiqueUe dépendent de la configuration de tâches obtenue et du paramètre de pertes fixé.

5.2 Métriques étudiées

Le simulateur permet d’ordonnancer en-ligne une configuration de tâches périodiques selon RTO, Green-BWP et EDeg pour évaluer différents critères de performances qui sont les suivants :

• Taux de respect : le taux de jobs complètement exécutés avant leur échéance. T QoS = nombre d

0ech´´ eances satisf aites

nombre total de jobs .100 (3.32)

Le taux de respect est la métrique primordiale qui reflète la QoS du système.

• Taux de batterie pleine : le pourcentage de temps durant lequel la batterie est pleine. T batterie_pleine = T emps cumul´e durant lequel la batterie est remplie

T emps de simulation .100 (3.33)

On étudie cette métrique pour évaluer le temps pendant lequel la batterie reste pleine. Elle permet d’avoir une idée vis-à-vis de la taille de la batterie selon le profil énergétique étudié et l’ordonnanceur utilisé. Ainsi on pourra avoir une idée de la dimension de batterie requise pour un des algorithmes étudiés si le nombre de fois durant lequel la batterie est pleine est grand cela signifie que l’on peut utiliser une batterie de capacité plus petite.

• Taux d’oisiveté : le pourcentage de temps où il n’y a aucun job à exécuter (le processeur est inactif). T idle_processor = T emps processeur idle

T emps de simulation .100 (3.34)

Cette métrique permet de mesurer combien de temps le processeur est inactif. Ainsi elle permet de donner une idée sur le comportement du système vis-à-vis de la charge de traitement considérée. Par conséquent en fonction du taux d’oisiveté obtenu avec un algorithme, il sera possible par exemple de prendre des décisions pour choisir un processeur plus ou moins performant en fonction des besoins en temps de traitement du système ou bien il sera possible de prévoir le comportement du système vis-à-vis de l’oc-currence d’une tâche apériodique.

• Taux de préemption : le nombre de préemptions vis-à-vis du nombre total de jobs exécutés. T pr´eemption = nombre de pr´eemptions

N ombre total de jobs .100 (3.35)

Cette métrique permet d’évaluer les surcoûts dus aux changements de contexte. En effet, la préemption d’une tâche engendre un changement de contexte qui consiste à sauvegarder l’état de la tâche courante interrompue (état des registres du processeur, pointeur de pile, etc.) puis restaurer celui de la tâche la plus prioritaire. Cette opération peut s’avérer plus ou moins coûteuse vis-à-vis du temps processeur consommé pour les accès mémoires qui dépend de l’architecture matérielle, du système d’exploitation et du type de tâches considérés. Moins il y a de préemptions, moins il y a des changements de contexte et plus l’or-donnanceur est performant.

• Ratio de gaspillage du temps processeur : le temps processeur utilisé par des jobs ayant violé leur échéance par rapport à la durée totale pendant laquelle le processeur est actif.

T temps_gaspill´ee = dur´ee totale d

0ex´ecution des jobs en ´echec

dur´ee totale d0activit´e du processeur .100 (3.36) C’est une métrique importante qui permet d’évaluer le gaspillage de temps engendré par les différents algorithmes lorsque ceux-ci lancent l’exécution de jobs qui finalement ne respectent pas leur échéance.

• Ratio d’énergie gaspillée : le ratio d’énergie utilisée par des jobs ayant violé leur échéance par rapport à la quantité totale d’énergie consommée.

T energie_gaspill´ee = ´energie totale utilis´ee par des jobs en ´echec ´

5. EVALUATION DES PERFORMANCES 79