Vous êtes sur la page 1sur 17

Introduction aux

Systèmes Temps Réels


Introduction
● système temps réel : qui doit fournir un service dans un
contexte où le temps intervient
 évolution du système (système réactif)
 contraintes de temps (échéances)
● par opposition aux systèmes interactifs ou
transformationnels
● systèmes embarqués :
 autonomes, avec un fort couplage entre le matériel et le
logiciel
 utilisation dans un but très précis
 très souvent des contraintes temporelles
 souvent inclus dans un système plus vaste
 ~ 90% du marché des processeurs

3
Quelques exemples (1)
asservissement par contrôle numérique

capteur
capteur procédé
procédé actionneur
actionneur

mesure résultat
y(t) u(t)

yk
A/D
A/D
uk
Loi
Loi de
de contrôle
contrôle D/A
D/A
rk calcul
calcul
référence
r(t) A/D
A/D

4
Quelques exemples (2)
● soit e(t) = r(t) – y(t)
● u(t) va dépendre de 3 termes :
 un terme proportionnel à e(t)
 un terme proportionnel à l'intégrale de e(t)
 un terme proportionnel à la dérivée de e(t)
● soit T la période d'échantillonnage du signal
 on approxime l'intégrale par la méthode du trapèze
 on approxime la dérivée pour l'intervalle [(k-1)T, kT ] par
(ek-ek-1) / T
● alors : uk = uk-1 + α ek + β ek-1 + γ ek-2

5
Quelques exemples (3)
● pour programmer la boucle :
créer un timer de période T
à chaque interruption du timer
faire les conversions analogique-numérique de y et r
calculer u
faire la conversion numérique-analogique de u
fin de la boucle

● le choix de T est important


● il peut être souhaitable de pouvoir le modifier
● concepts mis en jeu
 gestion du temps
 gestion des interruptions
 interaction avec l'utilisateur

6
Quelques exemples (4)
contrôleur de vol
 tous les 1/180 s faire
✔ lecture/validation des capteurs sélectionnés
✔ chaque 6 cycles (30 Hz) : tâches avionique
✘ lecture claviers, sélection mode
✘ normalisation des données, transformation des
coordonnées
✘ mise à jour des références de trajectoire
✔ chaque 6 cycles (30 Hz) : calculs
✘ loi de contrôle phase 2 pour la dérive
✘ loi de contrôle phase 2 du roulis
✘ loi de contrôle phase 2 du travers
✔ chaque 2 cycles (90 Hz) : en utilidant les résultats de 2 cycles
✘ loi de contrôle phase 1 pour la dérive
✘ loi de contrôle phase 1 du roulis et coordination
des 2 axes
✔ calcul de la loi de contrôle globale
✔ sortie des commandes pour les actionneurs
✔ auto-test

7
Quelques exemples (5)
● modèle cyclique facile à implémenter
● difficile de le faire évoluer
● très difficile à mettre en œuvre quand le système à
contrôler se complexifie un peu

8
Quelques exemples (6)
contrôle d'un groupe d'ascenseurs
 4 ascenseurs dans la cage d'escalier d'un même bâtiment,
desservant les mêmes étages
 deux boutons d'appel par palier, pour monter ou descendre
 1 bouton par étage dans chaque ascenseur
 partage optimum des ressources
✔ par exemple, un ascenseur en marche s'arrêtera à un étage
où l'appel a été demandé si et seulement si il va dans la
bonne direction quand il passera à l'étage concerné et si il
n'est pas en limite de surcharge
✔ recherche de l'équilibrage du service entre les différents
ascenseurs
 contrôle des "périphériques" (portes palières, indicateurs
sonores et visuels, etc...)

9
Quelques exemples (7)
● le modèle du générateur cyclique ne fonctionne plus
● contrôleur centralisé avec activation de tâches par
événements
● décentralisation de tâches sur des processeurs annexes
● système multi-processeur et multi-tâches
● synchronisation et communication entre les tâches
● modèle asynchrone

10
Quelques exemples (8)
contrôle aérien réponses commandes

● hiérarchie des contrôles


 contrôleur de trafic données
locales
aérien (météo...)
contrôleur
 gestionnaire de vol calculateur de traffic
aérien
 contrôleur de vol
● calculs complexes navigation
(optimisation) gestionnaire
calculateur de vol
● fiabilité
● respect des échéances
temporelles calculateur
contrôleur
de vol

données
locales
de vol

11
Quelques exemples (9)
contrôleur de trafic aérien

CPU CPU CPU

base de données
des éléments de vol réseau de
communication

réseau de
communication

processeur processeur
de visualisation de surveillance
des trajectoires

12
Quelques exemples (10)
● beaucoup d'autres systèmes ont des contraintes
temporelles
 bases de données
✔ contrôle de vols
✔ salles de marché
 multimédia
✔ compression/décompression
✔ transmission

13
Qu'est-ce que le temps réel ?
● non seulement des résultats exacts
● mais aussi fournis dans un temps donné, compatible avec
l'évolution du système
 l'échelle de temps dépend du système
✔ de quelques millisecondes pour un système de navigation
aérienne
✔ à plusieurs minutes ou heures pour le contrôle d'un réacteur
chimique
● dans un système temps réel, un résultat de calcul
mathématiquement exact mais arrivant au delà d'une
échéance pré-définie est un résultat faux

14
Temps réel dur et temps réel mou
● si un résultat arrivant en retard provoque un accident fatal
au système (génération d'une exception) : temps réel
dur
● sinon : temps réel mou, ou lâche
● la distinction entre les deux est une notion assez floue
● 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
● critère de respect des contraintes temporelles
 booléen pour le temps réel dur
 doit être défini pour chaque tâche dans le cas d'une
application temps réel lâche

15
Caractéristiques importantes (1)
● Prévisibilité
 pour déterminer à l'avance si un système va respecter ses
contraintes temporelles
 connaissance des paramètres liés aux calculs des activités
✔ temps global de calcul de chaque activité
✔ périodicité et gigue
✔ préemptivité
 évaluation des performances dans le pire des cas
 pour définir le meilleur algorithme d'ordonnancement

16
Caractéristiques importantes (2)
● Déterminisme
 but à atteindre pour prédire le comportement temporel du
système
✔ temps réel dur : chercher à savoir si toutes les échéances de
toutes les activités seront respectées
✔ temps réel lâche : par exemple savoir quels seront les retards
moyens
● Fiabilité
 du matériel
 tolérance aux fautes
 systèmes embarqués

17
Caractéristiques importantes (3)
● en résumé, le langage et l'environnement de
développement doivent permettre
 de spécifier le moment où une tâche doit démarrer
 de spécifier le moment où la tâche doit être terminée
 de gérer les situations où toutes les contraintes temporelles
ne peuvent pas être satisfaites
 de gérer des situations où les contraintes temporelles sont
susceptibles d'évoluer dynamiquement

18