Précédent Index Suivant

Chapitre 1   Définitions et problématique du temps-réel

1.1   Différentes définitions du temps-réel

La notion de ``temps-réel'' suggère bien évidemment celle de temps. L'acception du concept de temps est très large, mais nous nous concentrons dans ce travail sur la définition du temps en tant que donnée physique mesurable. Intuitivement, les systèmes informatiques ``temps-réel'' seraient donc ceux pour lesquels le comportement temporel, non seulement en terme de séquence d'opérations (propriété logique), mais également en terme de quantification de l'écoulement de ces opérations (propriété physique), a une importance.

Temps-réel et temps logique
Selon la définition officielle du temps-réel par la délégation générale à la langue française et aux langues de France1 [4], le temps-réel est un ``mode de traitement qui permet l'admission des données à un instant quelconque et l'obtention immédiate des résultats''. Cette définition repose principalement sur l'adjectif ``immédiat''. Elle introduit la notion de temps logique, et s'applique aux systèmes où on s'intéresse aux successions logiques d'événements et de décisions (domaine des systèmes réactifs qui reposent sur l'hypothèse de synchronisme fort) [Hal98, Bon92], mais ne convient pas aux problèmes où on s'intéresse aux propriétés quantitatives de l'écoulement des traitements qui ont un coût temporel non nul.

Temps-réel et temps physique
D'autres définitions existent qui relativisent l'adjectif ``immédiat'' de la précédente, et confèrent une existence physique au temps, dont celle-ci (canadienne) : ``mode de traitement des données selon lequel le traitement s'effectue avec un léger décalage [temporel]'' [3]. Mais sans précision sur l'adjectif ``léger'', l'idée qu'on se fait de tels systèmes ``temps-réel'' est qu'ils sont ``rapides'', c'est à dire que le ``décalage'' est le plus petit possible (on parle aussi de systèmes interactifs). Cette définition n'est pas un grand progrès par rapport à la problématique de la conception de systèmes informatiques classiques, puisqu'un grand pan de l'effort en développement informatique consiste à faire les bons choix algorithmiques afin d'obtenir des temps moyens d'exécution convenables, voire minimaux.

Notion de contrainte de temps
D'autres définitions précisent la précédente en donnant une valeur numérique à l'adjectif ``léger'' (typiquement : 0,5 secondes dans la définition de ``temps-réel dur'' de [3]). Ces définitions introduisent la notion de contrainte temporelle. Cependant, ce relatif progrès en précision se révèle n'être d'aucune utilité : pour certaines applications (contrôle d'un avion par exemple), un ``décalage'' de 0,5 secondes peut être synonyme de catastrophe, et pour d'autres applications il peut se révéler totalement inadapté ou impertinent (contrôle de le température d'une pièce par exemple). Il en découle que les contraintes temporelles sont dépendantes de l'application considérée.

Définition du temps-réel adoptée et problématique
Dans le présent travail, nous reposons sur la définition de temps-réel suivante, largement adoptée dans le domaine [Sta88] : ``la correction du système ne dépend pas seulement des résultats logiques des traitements, mais dépend en plus de la date à laquelle ces résultats sont produits''. Cette définition implique que les contraintes temporelles à respecter (par exemples les échéances des traitements) sont relatives à un temps physique mesurable, et font partie de la spécification du système à implanter. En outre, elle signifie que la seule rapidité moyenne d'exécution du logiciel ne conditionne pas la validité du système. Elle suggère que dans tous les cas, même les pires, toutes les contraintes temporelles doivent être respectées, sans quoi le système est défaillant.

Dans ce contexte, la problématique qui nous intéresse est celle de la conception et de la validation de systèmes informatiques qui sont soumis à des contraintes temporelles en plus des contraintes de correction fonctionnelles usuelles. Parmi les contraintes temporelles courantes, citons par exemple les échéances temporelles strictes des traitements, ou la gigue de démarrage des traitement ; nous reviendrons sur ces notions en 2.1.1.2.

1.2   Classification sommaire des systèmes informatiques temps-réel

L'utilisation de l'outil informatique apparaît de plus en plus fréquemment dans les domaines où l'interaction avec l'environnement constitue une raison d'être essentielle du système. L'intérêt de recourir à l'informatique dans ce genre de système est dû au fait que les fonctionnalités offertes le sont à coût moindre (à fonctionnalités équivalentes), en terme de temps de développement, de temps et de coûts de fabrication, d'encombrement ou de poids, par rapport aux solutions électroniques ou mécaniques. En outre, l'ajout de nouvelles fonctionnalités, la constitution de mises à jour, ou la personnalisation du produit se révèlent souvent être des tâches moins lourdes.

Temps-réel critique
On trouve aujourd'hui des gros systèmes informatiques temps-réel dans les domaines de l'aéronautique, de l'aérospatiale, des transports ferroviaires, du contrôle de procédés industriels, de supervision de centrales nucléaires, voire de gestion de salles de marchés ou de télémédecine. On trouve aussi de beaucoup plus petits systèmes embarqués dans l'automobile (système de contrôle des freins, du moteur) par exemple. Pour ces exemples, une des caractéristiques est que le système informatique se voit confier une grande responsabilité en terme de vies humaines, de conséquences sur l'environnement, voire de conséquences économiques. On parle alors de systèmes critiques, qui sont alors soumis à des contraintes de fiabilité. Cette caractéristique amène les problématiques orthogonales de sûreté de fonctionnement et de tolérance aux fautes [CP99b, CP99a] que nous ne détaillerons pas dans ce travail.

Temps-réel strict et temps-réel souple
La majorité des systèmes temps-réel critiques est exclusivement constituée de traitements qui ont des contraintes temporelles strictes : on parle de systèmes temps-réel strict. C'est à dire qu'en condition nominale de fonctionnement du système, tous les traitements du système doivent impérativement respecter toutes leurs contraintes temporelles ; on parle alors de traitements temps-réel strict ou dur (hard en anglais). Ceci suppose deux choses : i) qu'on est capable de définir les conditions de fonctionnement nominales en terme d'hypothèses sur l'environnement avec lequel le système interagit ; ii) qu'on est capable de garantir avant exécution que tous les scénarios d'exécution possibles dans ces conditions respecteront leurs contraintes temporelles. Ceci suppose à son tour qu'on puisse extraire ou disposer de suffisamment d'informations sur le système pour déterminer tous les scénarios possibles.

Une autre classe de systèmes est moins exigeante quant au respect absolu de toutes les contraintes temporelles. Les systèmes de cette classe, dits temps-réel souple (soft en anglais), peuvent souffrir un taux ``acceptable'' de fautes temporelles (non respect transitoire des contraintes) de la part d'une partie des traitements (eux-mêmes dits ``temps-réel souple''), et sans que cela ait des conséquences catastrophiques. Cette classe comprend entre autres les systèmes où la qualité est appréciée par nos sens : on parle dans ce cas de systèmes et d'applications multimédia (téléphonie, vidéo, rendu visuel interactif par exemple). La mesure du respect des contraintes temporelles prend la forme d'une donnée probabiliste : la qualité de service relative à un service particulier (nombre d'images ou nombre d'échantillons sonores rendus par secondes, par exemple), ou relative au comportement du système dans son ensemble (nombre de traitements qui ont pu être rendus dans les temps, tous services confondus, par exemple), ou les deux combinés. Une problématique de cette classe de systèmes est d'évaluer la qualité de service, avant ou pendant le fonctionnement, que le système offre ou va pouvoir offrir en cours de fonctionnement, en fonction des caractéristiques de l'environnement et du système. On distingue une sous-famille dans celle des traitements temps-réel souple, suivant que le non-respect d'une contrainte temporelle continue d'apporter quelque chose au système, ou non : si le traitement dépasse une contrainte temporelle, et si le continuer dans ces conditions jusqu'à son terme n'apporte rien au système, on parle de traitement temps-réel ferme (firm en anglais).

Il est également possible d'avoir des systèmes temps-réel strict non critiques, ou des systèmes temps-réel critiques qui contiennent des traitements temps-réel souple. Nous nous intéressons dans tout ce qui suit aux systèmes qui possèdent une composante temps-réel strict.


1
Ministère de la Culture, arrêté du 22/12/1981.

Précédent Index Suivant