Système Temps Réel
Système Temps Réel
Système Temps Réel
Aujourd’hui, les applications temps réel sont de plus en plus variées et elles prendront de plus en
plus de place dans notre vie quotidienne . Réservés, il y a quelques années, aux applications
industrielles, les systèmes temps réel font leur apparition dans beaucoup d’autres secteurs tels
que le transport, le multimédia, les consoles de jeux, ...
Définition
• Un système temps réel est un système (application ou ensemble d’applications) informatique
dont le fonctionnement est assujetti à l’évolution dynamique d’un procédé extérieur qui lui est
connecté et dont il doit contrôler le comportement.
• Un système temps réel n’est pas un système « qui va vite / rapide» mais un système qui
satisfait des contraintes temporelles (les contraintes de temps dépendent de l’application et de
l’environnement alors que la rapidité dépend de la technologie utilisée, celle du processeur par
exemple).
• Un système temps réel est un système qui peut répondre à son environnement dans le temps
le plus court possible. Ceci ne veut pas dire nécessairement que le microcontrôleurs μC devrait
opérer à haute vitesse. .
Un Système Temps Réel, c’est quoi ?
En informatique temps réel, le comportement correct d’un système dépend, non seulement des
résultats logiques des traitements, mais aussi du temps auquel les résultats sont produits" [STA
88].
Objectifs :
Déterminisme logique : les mêmes entrées appliquées au système produisent les mêmes
résultats.
Un système temps réel n’est pas un système "qui va vite" mais un système qui satisfait à
des contraintes temporelles.
Domaines d’applications
Les applications temps réel sont présentes aujourd’hui dans des domaines très variés comme
le montre la liste suivante :
• Temps réel dur ou critique (hard real-time): le non respect des contraintes temporelles
entraîne la faute du système.
Ex.: contrôle de trafic aérien, système de conduite de missile, etc.
• Temps réel souple (soft real-time): le respect des échéances est important mais le non
respect des échéances ne peut occasionner de graves conséquences.
Ex.: projection vidéo (décalage entre le son et l’image).
Ex.: un robot qui capte des infos sur des objets défilant sur un convoyeur [Duvallet et al. 1999].
• Temps réel ferme (firm real-time): temps réel souple avec le manquement occasionnel des
échéances.
Ex.: projection vidéo (perte de quelques trames d’images).
2. Classement des systèmes temps réel selon leur environnement:
oFiabilité (redondance).
o Contraintes physiques.
o Partage des données,
opériphériques,...
Par ailleurs, toute application temps réel est en interaction (forte ou faible selon les cas) avec
son environnement. Lequel environnement peut être un procédé industriel, un moteur
d’avion, une ville (si on s’intéresse à la pollution, par exemple), un malade, un groupe de
participants à une téléconférence, un enfant devant sa console de jeu, etc.
La nature de l’environnement à une incidence directe sur la criticité des actions entreprises dans
une application temps réel.
Pour résumé :
Notion de criticité et d’importance des opérations:
La notion de “criticité” (ou criticality en anglais) a été introduite comme critère pour
pouvoir classer les applications temps réel selon la sévérité, en terme de coût engendré par le
non-respect des contraintes temporelles. On parle de faute temporelle, quand les contraintes
de temps ne sont pas respectées.
Dans la pratique, chaque tâche prend un temps très bref, il paraît donc comme si toutes
les tâches sont exécutées en parallèle et simultanément.
La majorité des systèmes à microcontrôleurs (μC) fonctionnent en temps réel.
Exemple : Un système à base de μC exécute plus qu’une activité pour contrôler une
température, il est composé de 3 tâches qui se répètent après un court délai :
• Exemple : Un STR décide quelle est la tâche suivante qui sera exécutée ou comment
ordonner la priorité des tâches et comment passer les données et les messages entre les
tâches.
Il y a plusieurs STR de haut niveau disponibles sur le marché pour les μC PIC : Salvo
utilisé à partir d’un compilateur C de PIC : High-tech et CCS qui intègrent des systèmes
RTOS.
Les machines d’états
Ce sont des constructions simples utilisées pour exécuter plusieurs activités en suivant
une séquence.
La méthode la plus simple pour coder des machines d’état en C est d’utiliser une
instruction switch-case.
Dans plusieurs applications, les états n’ont pas besoin d’être exécutés en séquence (le
prochain état est sélectionné par l’état présent soit d’une façon directe soit suivant des
conditions.
Système d’exploitation temps réel (RTOS : Real Time
Operating System)
Les RTOS sont construits autour d’un noyau multitâche qui contrôle l’allocation des laps
du temps des tâches. Un laps du temps est la période de temps pour l’exécution d’une
tâche donnée avant qu’elle sera arrêtée et remplacée par une autre tâche.
Ce processus est connu par le changement du contexte, qui se répète de façon continue.
Quand le changement de contexte se produit, la tâche est stoppée, les registres du CPU
sont sauvegardés dans la mémoire, les registres de la prochaine tâche disponible sont
chargés dans le CPU et la nouvelle tâche commence son exécution..
Un RTOS fournit aussi les messages qui passent entre les tâches, synchronisation des
tâches et allocation de ressources partagées des tâches.
•L’ordonnanceur (Scheduler).
•Services RTOS.
Dans les applications temps-réel embarquées, les systèmes sont en interaction avec
l’environnement physique. Il y aura des c Contraintes de temps à satisfaire :
•La date de livraison d’un résultat est un critère de correction autant que la valeur du
résultat elle-même
•Sûreté de fonctionnement
II. Notion de contraintes de temps
C’est une limite quantifiée (en rapport avec le temps réel) sur le temps séparant deux
événements.
III. Contraintes pour la réalisation d’applications
temps-réel
•Validation des contraintes de temps à partir de la charge de travail : Tests pas toujours
suffisants (exhaustivité), Modèle du système et de la charge : analyse d’ordonnançabilité
III.2 Contraintes pour la réalisation d’applications temps-réel
• Assembleur rapide, mais non portable, difficile de vérifier les contraintes de temps (pas
assez structuré) d’où le recours à des langages de plus haut niveau (ex: Ada).
IV. Ordonnancement temps réel
IV.1 Problème
IV.2 Définition
C’est l’ensemble des règles définissant l’ordre d’exécution des calculs sur le processeur
L’ordonnancement a un impact sur le respect des contraintes de temps.
Exemple :
Ordonnancement O1: premier arrivé, premier servi, Ordonnancement O2: priorité, T2 plus
on n’interrompt jamais une tâche prioritaire que T2.
V. Classification des ordonnancements
Hors-ligne :
•La séquence d’ordonnancement est pré-calculée avant l’exécution effective (on dit aussi
« time driven» scheduling)
Non préemptif :
On n’interrompt jamais l’exécution d’une tâche en cours au profit d’une autre tâche
Préemptif :
La tâche en cours peut perdre involontairement le processeur au profit d’une autre
tâche (jugée plus urgente)
Remarque : orthogonal par rapport à la classification en-ligne / hors-ligne
Exemple d’ordonnancement préemptif : conduit par la priorité
Algorithme d’ordonnancement :
Sélectionner la tâche la plus prioritaire
• prio(T3) > prio(T2) > prio(T1) (ici, priorités fixes)
• T1, T2 et T3 arrivent respectivement aux dates 1, 2,et 3
V.4 Optimalité
Optimal vs heuristique :