Les systèmes temps réel se distinguent par la prise en compte
de limites temporelles dont le respect est aussi important
que la précision du résultat attendu des calculs réalisés. De
tels systèmes sont largement utilisés dans l’industrie pour le
contrôle de processus, la sûreté des installations et partout où la
réactivité impose des contraintes de délais non négociables.
L’informatique en temps réel (ou real time computing en
anglais) mobilisent des équipements matériels et des logiciels
qui ensembles composent une solution capable de respecter
des délais précis dans un traitement pouvant comporter la détection
d’un ou plusieurs états, des calculs et la délivrance d’un résultat.
Les réponses délivrées en temps réel s’entendent dans des délais
de seulement quelques millisecondes à quelques microsecondes
depuis l’événement déclencheur qu’il soit imprévisible ou lié à une
périodicité. A l’inverse, un système qui ne fonctionne pas en temps
réel, ne peut généralement pas garantir qu’une réponse puisse être
apportée dans un délai quelconque et ce, même lorsque des temps
de réaction typiques peuvent être spécifiés.
On peut définir un système temps
réel comme un système qui contrôle
un environnement en collectant des
informations, en les traitant et en délivrant
des résultats à une vitesse suffisamment
élevée pour qu’il soit en mesure d’impacter
l’état de ce même environnement avec
efficacité et dans un délai pertinent quant
à la réaction attendue. Pour simplifier, on
peut dire au sujet des systèmes de contrôle
de processus industriels que la réaction
attendue se produit sans retard significatif.
Cette même expression « temps réel »
est également utilisée dans la simulation
numérique pour indiquer que l’horloge de
l’environnement virtuel fonctionne à la
même vitesse qu’une horloge réelle.
Les systèmes temps réel sont utilisés le plus
souvent dans des applications critiques –
contrôle de robots, drones aéronautique,
freinage et contrôle d’assiette des véhicules,
etc. – qui doivent produire un effet ou
contrôler une situation en intégrant à
grande vitesse des paramètres en constante
évolution. Bien sûr, le traitement en temps
réel échoue s’il n’est pas terminé dans un
délai significatif pour l’événement considéré.
LES VRAIS ET LES FAUX
TEMPS RÉELS
Les systèmes dits temps réel, peuvent être
classés en fonction des conséquences que
produisent le non-respect du délai. On
parle de temps réel strict – ou hard real
time en anglais – lorsque le dépassement
de la limite temporelle entraîne une erreur
irréparable du système ou nécessite une
intervention considérée comme lourde
pour corriger le problème engendré (ex. :
plusieurs minutes ou heures d’arrêt d’une
installation avant son redémarrage). On
parle de temps réel significatif – ou firm real
time en anglais – lorsque le dépassement
des délais entraîne une dégradation notable
du fonctionnement d’une installation
(ex. : ralentissement d’une machine ou
d’une ligne de production, réinitialisations
partielles successives, etc.). Enfin, on
parle de temps réel souple lorsque le
dépassement du délai peut être compensé
à court ou moyen terme et que l’installation
ne subit que des retards maîtrisables (ex.
: déclenchement d’une mesure corrective
pour maintenir l’installation en fonction,
incidence sur la qualité des produits sans
entraîner un rejet systématique, etc.).
Ainsi, l’objectif d’un système en temps réel
strict est de s’assurer que tous les délais
sont toujours respectés puisque leurs
dépassements peuvent conduire à des
situations critiques voire irréparables. A
l’inverse, l’objectif des systèmes en temps
réel souple est de respecter un certain
sous-ensemble de délais afin d’optimiser
certains critères spécifiques à l’application.
Dans une installation industrielle, les deux
types d’applications peuvent coexister
au sein d’une même solution. Il faut dans
ce cas qu’un séquenceur garantisse la
priorisation des traitements en intégrant
une marge d’erreur suffisamment large
pour que les exigences de l’application
stricte soient toujours remplies. Un tel
mécanisme est notamment au coeur des
ressources et des protocoles mis en oeuvre
dans les réseaux TSN qui sont en cours de
standardisation (voir article suivant).
Théoriquement, le concepteur d’un système
temps réel strict doit être en mesure de
prouver que les délais limites ne seront
jamais dépassés quelle que soit la situation.
Cette preuve est apportée par un test
d’acceptabilité qui découle d’une
analyse de faisabilité faisant appel à la théorie de l’ordonnancement. Le succès
dépend de l’ordonnanceur utilisé et des
caractéristiques des tâches du système.
DE L’ANALOGIQUE AU
NUMÉRIQUE, LE CAS DU
TRAITEMENT D’UN
SIGNAL
Une grande part des informations qui
sont ou seront tirées d’une installation
quelle qu’elle soit, procède de grandeurs
physiques qu’il convient de transformer
en données numériques afin de permettre
leur traitement dans une unité de calcul.
Dans un processus en temps réel de
traitement d’un signal numérique (ou DSP
de l’anglais digital signal processing), les
données délivrées à la sortie à partir des
échantillons analysés à l’entrée peuvent
être générées en continu sans prendre
de retard. Cela signifie que le délai de
traitement est inférieur au temps qui
est nécessaire pour collecter, générer et
délivrer un même ensemble d’échantillons.
En d’autres termes, le temps moyen de
traitement par échantillon en incluant les
délais de propagation, n’est pas supérieur
à la période d’échantillonnage, qui est la
réciproque du taux d’échantillonnage.
Un algorithme de traitement du signal
qui délivre un résultat en accumulant du
retard sur le flux des données présent à
l’entrée ne peut être qualifié de temps
réel. En revanche, si le retard de la sortie
par rapport à l’entrée est maintenu dans
une limite qui ne change pas quelle
que soit la durée de fonctionnement
du système, alors cet algorithme de
traitement du signal fonctionne bien en
temps réel.
En informatique, la notion de temps réel
est trop souvent confondue avec celle
de calcul à très haute performance, ce
qui est une considération erronée. Ainsi,
un super-ordinateur est capable de faire
un très grand nombre de calculs pour
construire une simulation d’un phénomène
complexe. Il ne s’agit pas à proprement
parler d’informatique en temps réel
même si l’analyse des algorithmes et
leur amélioration au fil du temps peut
augmenter les performances du système
avec une certaine constance.
En revanche, une fois qu’il a été mis au
point, un système fonctionnant en temps
réel par rapport à l’application considérée,
ne requiert aucune amélioration ultérieure.
Lorsque par exemple, les contrôleurs, les
circuits électroniques et les logiciels qui
pilotent un système d’antiblocage des
freins (ABS) a été mis au point, aucun gain
de performances n’est ultérieurement
nécessaire pour qu’il remplisse sa fonction
au fil des jours.
Au reste, si la notion de temps réel n’est
pas nécessairement rattachée à celle de
calcul à haute performance, elle n’est
pas non plus obligatoirement liée à la
nécessité d’une communication à haut
débit. Tout dépend en effet du délai qui
est acceptable pour opérer un contrôle
efficace de l’environnement par le système
temps réel mis en place. La régulation
de la température et de l’hygrométrie
dans une serre de culture expérimentale
est une opération critique mais qui
supporte des opérations correctives
entreprises après quelques minutes de
dérive des paramètres attendus. De
même, la régulation du courant dans un
canal navigable s’opère en fermant ou
en ouvrant des vannes d’alimentation
toutes les trois à six heures selon les
saisons. Dans une cellule robotisée
en revanche, un arrêt de sécurité doit
impérativement être réalisé en moins de
quelques dixièmes, voire centièmes de
seconde, soit moins de temps qu’il ne faut
à un opérateur pour franchir la distance
qui sépare le détecteur de présence ou
la barrière de sécurité de la machine en
mouvement.