Temps de réponse d'un STR

Prudence : document en construction, et structure en émergence...

Pour un résumé des symboles typiques pour les éléments clés des différents tests « d'ordonnançabilité » que vous trouverez dans la littérature, vous pouvez vous référer à ceci (version PDF) ou à cette version HTML.

Le temps de réponse d'une tâche TR représente le temps entre son lancement et sa complétion. Exprimé autrement, le temps de réponse d'un STR est un cumul des temps de réponse de ses tâches. Le temps de réponse d'un STR est le fruit d'un ensemble complexe d'interactions entre de multiples tâches.

Posons un regard aérien sur la question d'une analyse de ce temps de réponse :

On peut heureusement résoudre l'équation par récurrence, en y allant de la tâche la plus prioritaire (celle qui ne subit aucune interférence) à la moins prioritaire.

On considère parfois ce qu'on nomme le Release Jitter d'une tâche sporadique quand cette tâche est susceptible d'être lancée par une autre tâche, peut-être à distance, et quand il existe une latence entre la demande de lancement et le lancement effectif. Le paramètre représente le pire cas de latence au lancement de la tâche . En tenant compte de ce paramètre, on obtient .

En bref

Quoi Symbole Calcul

WCET de la tâche

Selon la tâche

Nombre de lancements dans l'intervalle

n/a

Interférence avec la tâche sans tenir compte du Release Jitter

Interférence avec la tâche en tenant compte du Release Jitter

Temps de réponse de la tâche

Tâches apériodiques ou sporadiques

L'analyse du temps de réponse d'un STR ne se limite pas aux ordonnancements dont les tâches sont strictement périodiques. Pour l'adapter de manière à inclure aussi les tâches apériodiques ou sporadiques :

Interactions entre tâches et blocage

Dans un monde « idéal », par exemple dans un système monoprogrammé où toutes les tâches sont périodiques sur la base de paramètres statiques, il est possible de présumer une forme d'indépendance entre les tâches et, par le fait même, de simplifier les calculs. En pratique, supposer l'indépendance des tâches et l'absence d'interactions entre elles n'est pas raisonnable : on trouve des verrous, du passage de messages, des situations d'inversion de priorités, etc.

Il est possible de calculer le blocage maximal d'une tâche dans un système où existent ressources (verrous ou autres) en vertu desquelles il est possible d'attendre, en évaluant où :

Considérant le blocage, le poids d'une tâche donnée dans le calcul du temps de réponse d'un STR devient ou, de manière plus exhaustive, .

En bref

Quoi Symbole Calcul

Blocage maximal de la tâche avec ressources

Temps de réponse de la tâche tenant compte de

Impact de la tolérance aux pannes

Il arrive qu'on souhaite tenir compte du coût de la tolérance aux pannes dans le calcul du temps de réponse d'un STR. Pour une tâche , ce coût est habituellement indiqué par le paramètre , équivalent à , et inclut entre autres ce qui a trait aux exceptions. Sans surprises, on s'intéresse habituellement au pire cas.

En omettant le coût associé au Release Jitter (donc en le considérant constant, ou même nul), le calcul du temps de réponse incluant ce paramètre devient : avec représentant l'ensemble des tâches de priorité supérieure ou égale à celle de la tâche . Il arrive aussi qu'on ajoute un facteur au poids de si plusieurs pannes sont susceptibles d'être traitées en séquence.

S'il existe un intervalle minimal entre deux pannes, l'équation devient : .

En bref

Quoi Symbole Calcul

Coût de la tolérance aux pannes pour la tâche sans tenir compte de l'intervalle minimal entre deux pannes

 

Coût de la tolérance aux pannes pour la tâche en tenant compte de l'intervalle minimal entre deux pannes

 

Temps de réponse de la tâche tenant compte de et de

Voilà!


Valid XHTML 1.0 Transitional

CSS Valide !