Chapitre 1ma
Chapitre 1ma
Chapitre 1ma
•le système doit répondre à des stimuli externes sous un délai spécifié,
•l’absence de réponse est aussi grave qu’une réponse erronée.
Il n'est pas nécessaire que toutes les tâches d'une application temps réel appartiennent
à la même catégorie. Il est possible que différentes tâches d’un système temps réel
puissent appartenir à différentes catégories.
8.1. Tache dure
Une tâche dure en temps réel est une tâche qui est contrainte de produire son
résultat dans des délais prédéfinis. Le système est considéré comme ayant
échoué chaque fois que l'une de ses tâches temps réel dure ne produit pas les
résultats requis avant le deadline spécifiée.
Pour des tâches en temps réel dur dans des systèmes pratiques, les limites de
temps vont généralement de quelques micro secondes à quelques millisecondes.
Exemples : contrôle aérien, contrôle d'une centrale nucléaire.
8.2. Tâche ferme
Même lorsqu'une tâche en temps réel ferme ne se termine pas dans les délais
impartis, le système n'échoue pas. Les résultats tardifs sont simplement ignorés.
Pour les tâches en temps réel mou qui se produisent généralement dans des
applications pratiques, les délais varient généralement d'une fraction de seconde à
quelques secondes.
Exemples : Web browsing, logiciel embarque de votre téléphone, iPod, etc.
Dans un système donné, des tâches temps réel dures et lâches peuvent cohabiter,
éventuellement avec des tâches sans contraintes temporelles. La fermeté est une
caractéristique de chaque échéance (deadline).
Un même système peut avoir des sous-systemes TR dur, TR-ferme ou TR-mou.
Les critères de respect des contraintes temporelles :
o booléen pour le temps réel dur : vrai/faux; ça passe ou ça casse !
o complexe, doit être défini pour chaque tâche dans le cas d'une application
temps réel lâche. On parle de Qds (Qualité de service, de seuil
d’acceptabilité, …)
Implémentation d’une commande numérique en temps réel
Boucle fermée:
On note l’occurrence d’un réveil de tâche à l’aide d’une flèche pointant vers le haut,
l’échéance de la tâche étant représentée par une flèche pointant vers le bas.
r0 : date de réveil : moment du déclenchement de la 1ère requête d'exécution
C : durée d'exécution maximale (capacité)
D : délai critique : délai maximum acceptable pour son exécution
P : période (si tâche périodique)
Tâche périodique : rk= r0+ k*P
si D = P, tâche à échéance sur requête(task due on request)
Fig.1.13. : les caractéristiques d’une tâche périodique à échéance sur requête (D = P),
i=1 i
Implémentation d’une commande numérique en temps réel
Dans l’exemple suivant, nous pouvons noter que les tâches T1et T2 doivent attendre un
temps important jusqu’à ce que la tâche T0se termine.
b.Algorithmes préemptifs
1. Algorithme du tourniquet
L’algorithme du tourniquet (round robin en anglais) vise à traiter les tâches avec le
plus d’équité possible, en allouant un quantum de temps identique à toutes les tâches
et à les traiter dans un ordre FIFO.
Les tâches sont placées dans une file d’attente et la première de la file est exécutée
pendant un quantum de temps
A la fin de ce quantum, si la tâche n’est pas terminée, elle est replacée à la fin de la
file et une nouvelle tâche est sélectionnée de puis le début de la file.
Implémentation d’une commande numérique en temps réel
Si la file est vide, la tâche peut continuer son exécution. La figure suivante illustre cet
algorithme avec un quantum de 2 unités de temps.