• Aucun résultat trouvé

Nous considérons un système temps réel et nous nous intéressons au problème de l’ordonnancement monoprocesseur de tâches périodiques et de tâches apériodiques non critiques sous contraintes temporelles et énergétiques.

8.2.1

Modèle de tâches périodiques

Le modèle de tâches périodiques classique est le plus utilisé dans la modélisation des systèmes temps réel. Ce modèle permet de définir plusieurs paramètres pour une tâche. Ces paramètres sont de deux types : paramètres statiques relatifs àla tâche elle-même et les paramètres dynamiques relatif à chaque instance de la tâche. Dans un système de tâches périodiques Γ, une tâche périodique τi est caractérisée par les

paramètres statiques (ri, Ci, Di, Ti, Ei):

– ri: sa date de réveil,

– Ci : sa durée d’exécution au pire cas (WCET),

– Di : son échéance relative,

– Ti : sa période,

– Ei: sa demande énergétique au pire cas (WCEC).

Dans cette définition, la tâche τi fait son initiale requête à l’instant 0 et ses requêtes suivantes aux instants

kTi; k = 1; 2; ... appelé dates de réveil ri. Ti représente la séparation temporelle entre deux jobs successifs

d’une tâche τi. Donc le kime job de la tâche τi est relâché à l’instant ri+ (k − 1)Ti et devra s’exécuter pour

Ci unités de temps avant l’instant ri+ (k − 1)Ti+ Di.

Les paramètres dynamiques d’une tâche déterminent le comportement pendant l’exécution de la tâche τi. Ces paramètres sont définis pour chaque instance ou job i noté Ji par :

– Ci : sa durée d’exécution au pire cas (WCET),

– di : di = Ri + Di son échéance absolue, c’est la date dont le dépassement entraîne une faute tem-

porelle,

– Ei: sa demande énergétique au pire cas (WCEC),

Un job peut être interrompu et reprend exécution plus tard à n’importe quel instant et aucune perte de durée ou d’énergie est associée à une telle préemption.

8.2.2

Modèle de tâches apériodiques non critiques

Nous considérons de plus une configuration de tâches apériodiques non critiques Ap dans laquelle une tâche apériodique Api est caractérisée par :

– ai: la date coïncidant l’arrivée d’une tâche apériodique non critique,

– ci: sa durée d’exécution au pire cas, connue au temps d’arrivée,

– ei: sa demande énergétique.

8.2 Ordonnancement temps réel 119

Les tâches apériodiques sont rangées selon un ordre FIFO (le premier arrivé est le premier servi). Par la suite nous présentons différents serveurs permettant d’exécuter conjointement les tâches périodiques et apériodiques tout en garantissant le respect des échéances des tâches périodiques.

8.2.3

Algorithmes d’ordonnancement

Nous distinguons dans la théorie de l’ordonnancement temps réel à priorité dynamique, trois familles de serveurs qui traitent les tâches apériodiques conjointement avec les tâches périodiques. Nous les citons brièvement dans cette sous-section.

L’algorithme BG (Background Server)

Le serveur des tâches apériodiques Background (BG) [9] ordonnance les tâches apériodiques non critiques lorsqu’il n’y a aucune activité périodique au sein du système. Le principal avantage de ce serveur réside dans sa simplicité de mise en œuvre, en plus du fait qu’il garantisse que les tâches n’affecteront pas le comportement des tâches périodiques. Par contre, l’inconvénient majeur provient du fait que le temps de réponse aux requêtes apériodiques peut être grand.

L’algorithme EDL (Earliest Deadline as Late as possible)

Le serveur Earliest Deadline as Late as possible (EDL) repose sur la technique de Slack Stealing, capable d’assurer la gestion de tâches apériodiques au sein d’une application temps-réel. Il consiste à exécuter les tâches périodiques au plus tôt lorsqu’il n’y a aucune activité apériodique. Dans le cas contraire, chaque fois qu’une tâche apériodique survient, toutes les tâches périodiques sont ordonnancées au plus tard, dans le respect de l’ensemble des échéances des tâches. En d’autres termes, l’algorithme EDL tire profit de la laxité effective (c’est-à-dire de l’intervalle entre la date de fin d’exécution et l’échéance) des tâches périodiques, afin de minimiser le temps de réponse des apériodiques. Dans [10], Chetto et Chetto présentent une méthode simple pour déterminer la localisation et la durée des temps creux dans n’importe quelle fenêtre d’une séquence produite par EDL.

Il a été démontré [18] que le serveur EDL nécessite un calcul en-ligne des temps creux du processeur uniquement aux instants relatifs à l’occurrence d’une nouvelle tâche apériodique. La propriété fondamen- tale du serveur EDL est qu’il garantit le maximum de temps creux dans un intervalle donné pour n’importe quel ensemble de tâches. EDL a été démontré optimal [18].

Un autre résultat significatif réside dans la complexité de l’établissement de la séquence EDL. Le cal- cul en-ligne des temps creux [18] s’effectue en O(dRpen) où n désigne le nombre de tâches périodiques, R l’échéance la plus éloignée parmi les tâches actives et p la plus petite période.

L’algorithme TBS (Total Bandwidth Server)

L’approche principale derrière le serveur Total Bandwith Server (TBS) [13, 14] est d’affecter une proche échéance possible à chaque tâche apériodique, de façon que l’utilisation totale du processeur n’excède pas une valeur maximale spécifiée de Ups. Le nom du serveur provient du fait que, à chaque fois une tâche

apériodique entre dans le système, la bande passante totale du serveur (en termes de temps d’exécution de CPU), est affectée si c’est possible. Cela se fait simplement en affectant une échéance appropriée à la tâche, qui est ordonnancée conjointement suivant l’algorithme EDF avec toutes les tâches périodiques. L’attribution de l’échéance est faite pour améliorer le temps de réponse de la tâche apériodique non critique, tout en conservant l’ordonnançabilité des tâches périodiques. Lorsque la kème tâche apériodique arrive à l’instant t = rk, elle reçoit une échéance fictive: dk = max(rk, dk−1) + UcP Sk , où ckest le temps d’exécution

de la tâche et UP S est le facteur d’utilisation du serveur. Par définition, d0 = 0. La tâche est par suite

insérée dans la liste d’attente du système et ordonnancée par EDF comme n’importe quelle tâche périodique. Notons que, à l’attribution d’une nouvelle échéance dk, la bande passante déjà attribuée aux précédentes

tâches est prise en compte par la valeur de dk−1.

Intuitivement, l’affectation des échéances fictives est telle que le rapport alloué aux requêtes apéri- odiques par EDF dans chaque intervalle de temps ne dépasse jamais Ups. Par conséquent, l’ordonnançabilité

120

CHAPTER8 : Contributions à l’Ordonnancement en Temps Réel pour les Systèmes

Autonomes en Energie

de l’ensemble des tâches périodiques sous TBS peut simplement être testée en vérifiant la condition suiv- ante: Upp+Ups ≤ 1 [14], où Uppest le facteur d’utilisation des tâches périodiques. En dépit de sa simplicité,

le TBS représente un bon rapport de performance/coût et peut facilement être optimisé afin de minimiser le temps de réponse de chaque requête apériodique.

L’algorithme T BS∗ (Optimal Total Bandwidth Server)

L’algorithme T BS∗ [31] est une amélioration de l’algorithme TBS dans le sens où il permet d’assigner à chaque tâche apériodique une échéance fictive plus petite que celle fournie par TBS. A chaque fois qu’une tâche apériodique arrive, le serveur T BS∗lui assigne en premier lieu une échéance selon l’algorithme TBS. Celui-ci va ensuite essayer de raccourcir au maximum cette échéance de manière à optimiser le temps de réponse des tâches apériodiques sans compromettre l’exécution des tâches périodiques. Si d0k correspond à la première échéance assignée à la tâche apériodique Apk selon TBS, le processus de raccourcissement

de cette échéance est appliqué de façon itérative jusqu’à ce qu’aucune amélioration ne soit plus possible, tout en conservant l’ordonnançabilité de la configuration des tâches périodiques. Par conséquent, si dskest l’échéance assignée à la tâche apériodique Apk au pas s, l’ordonnançabilité est conservée en assignant à

Apkune nouvelle échéance donnée par: ds+1k = t + ck+ Ip(t + dsk), où t est le temps courant (correspondant

à la date de réveil rk de la tâche Apk ou bien à la date de terminaison de la tâche précédente), ck est la

durée d’exécution au pire cas requise par Apk, et Ip(t + dsk) est l’interférence due aux jobs périodiques dans

l’intervalle [t, dk). L’interférence périodique Ip(t+dsk) est la somme de deux termes, Ia(t+dsk) et If(t+dsk).

Ia(t + dsk) correspond à l’interférence due aux jobs périodiques actifs au temps courant ayant des échéances

strictement inférieures à dsk. If(t + dsk) correspond à l’interférence future due aux jobs périodiques ayant

leur date d’arrivée supérieure au temps courant t et ayant leur échéance inférieure à ds

k. Leurs formules sont

données ci-après, Ia(t, dsk) = X τactive;di<dsk ci(t) et If(t, dsk) = n X i=1 max(0, dd s k− nextri Ti

e)Ci, où nextri est le prochain réveil de la tâche τi supérieur ou égal à t.

Documents relatifs