Système temps réel

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources ().

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

En informatique, on parle d'un système temps réel lorsque ce système est capable de contrôler (ou piloter) un procédé physique à une vitesse adaptée à l'évolution du procédé contrôlé.

Les systèmes informatiques temps réel se différencient des autres systèmes informatiques par la prise en compte de contraintes temporelles dont le respect est aussi important que l'exactitude du résultat, autrement dit le système ne doit pas simplement délivrer des résultats exacts, il doit les délivrer dans des délais imposés.

Domaines d’applications

Les systèmes informatiques temps réel sont aujourd'hui présents dans de nombreux secteurs d'activités :

  • l'industrie de production par exemple, au travers des systèmes de contrôle de procédé (usines, centrales nucléaires) ;
  • les salles de marché au travers du traitement des données boursières en « temps réel » ;
  • l'aéronautique au travers des systèmes de pilotage embarqués (avions, satellites) ;
  • l’automobile avec le contrôle de plus en plus complet des paramètres moteur, de la trajectoire, du freinage, etc. ;

et dans le secteur de la nouvelle économie au travers du besoin, toujours croissant, du traitement et de l'acheminement de l'information (vidéo, données, pilotage à distance, réalité virtuelle, etc.).

Le développement de systèmes temps réel nécessite donc que chacun des éléments du système soit lui-même temps réel, c’est-à-dire permettre de prendre en compte des contraintes temporelles et la priorité de chacune des tâches. Un système d'exploitation conçu pour prendre en compte ces contraintes est appelé système d'exploitation temps réel.

Spécificités

Pour garantir le respect de limites ou contraintes temporelles, il est nécessaire que :

  • les différents services et algorithmes utilisés s'exécutent en temps borné mais peuvent être interrompus par un processus plus prioritaire ;
  • Un système d'exploitation temps réel doit ainsi être conçu de manière que les services qu'il propose (accès hardware, etc.) répondent en un temps borné et soient interruptibles ;
  • les différents enchaînements possibles des traitements garantissent que chacun de ceux-ci ne dépassent pas les contraintes temporelles. Ceci est vérifié à l'aide du « test d'acceptabilité ».

Tâches

Une tâche est généralement caractérisée par un temps de calcul (Ci), une échéance (Di) qui est la date à laquelle la tâche doit avoir terminé son exécution, et dans le cas des tâches périodiques, par une période (Ti) qui représente la durée séparant ses instants d'activation. Une exécution de la tâche est appelée une instance.

Temps réel strict/souple

On distingue le temps réel strict ou dur (de l'anglais hard real-time) et le temps réel souple ou mou (en anglais soft real-time) suivant l'importance accordée aux contraintes temporelles :

Le temps réel strict
ne tolère aucun dépassement de ces contraintes, ce qui est souvent le cas lorsque de tels dépassements peuvent conduire à des situations critiques, voire catastrophiques : pilote automatique d'avion, système de surveillance de centrale nucléaire, etc. On peut considérer qu'un système temps réel strict doit respecter des limites temporelles données même dans la pire des situations d'exécution possibles.
Le temps réel souple
s'accommode de dépassements des contraintes temporelles dans certaines limites au-delà desquelles le système devient inutilisable ou pénible : visioconférence, jeux en réseau, etc. Un système temps réel souple doit respecter ses limites pour une moyenne de ses exécutions. On tolère un dépassement exceptionnel, qui pourra être compensé à court terme.

Test d'acceptabilité

Théoriquement, le concepteur d'un système temps réel prétendu strict devrait être capable de prouver que les limites temporelles ne seront jamais dépassées quelle que soit la situation. Cette vérification est appelée « test d'acceptabilité », « analyse de faisabilité » ou encore « contrôle d'admission » ; elle fait appel à la théorie de l'ordonnancement. Elle dépend de l'ordonnanceur utilisé et des caractéristiques des tâches du système.

Pour un système souple, on pourra se contenter de mesures statistiques obtenues sur un prototype.

Condition de charge

Pour tout système de n {\displaystyle n} tâches, la condition suivante est nécessaire mais pas suffisante à sa faisabilité :

i = 1 n C i T i 1 {\displaystyle \sum _{i=1}^{n}{\frac {C_{i}}{T_{i}}}\leq 1}

Avec :

  • Ci le temps de calcul de la tâche n° i
  • Ti sa période.

Une valeur supérieure à 1 signifierait que le système nécessite plus de temps d'exécution que le processeur ne peut en fournir.

Temps de réponse dans le cas le plus défavorable

Le temps de réponse dans le cas le plus défavorable d'une tâche est, parmi tous les scénarios possibles d'exécution du système, la plus longue durée entre l'activation de cette tâche et son instant de terminaison.

Une tâche est faisable si son temps de réponse dans le pire des cas est inférieur ou égal à son échéance. Un système est faisable si toutes les tâches qui le composent sont faisables. Le coût est exponentiel.

Exemples de systèmes d'exploitation temps réel

Une liste non exhaustive est disponible ici.

Bibliographie

Jane W. S. Liu, « Real-time Systems », Prentice Hall, 2000.

Notes et références

Voir aussi

Articles connexes

Lien externe

  • Cours sur les systèmes temps réels
v · m
Apple
Mac OS Classic
Dérivés de NeXTSTEP
Dérivés de BeOS
DOS
IBM
Microsoft Windows
Fondés sur MS-DOS
Branche NT
ReactOS Foundation
Branche NT (GPL/LGPL/AGPL) non-Microsoft
POSIX / Unix
AT&T / Laboratoires Bell
BSD
GNU Hurd
Linux (liste)
Autres dérivés
Dérivés d'AmigaOS
Dérivés du TOS
D’importance historique
Mobile
Noyau Linux
Autres noyaux
Embarqués
Pour capteur en réseau
Pour carte à puce
Temps réel
Autres systèmes
Pour une liste complète, voir la liste des systèmes d’exploitation et la catégorie « Système d’exploitation ».
v · m
Domaines de l'informatique
Remarque : cette liste s'inspire du système de classification informatique de l'ACM édité en 2012
Matériel
Appareil et organisation
d'un système
Réseau
Organisation du logiciel
Théorie et outil (en)
de programmation
Développement de logiciel
Théorie du calcul (en)
Algorithmique
Mathématiques
de l'informatique
Système d'information
Sécurité
Interactions homme-machine
Concurrence (en)
Intelligence artificielle
Apprentissage automatique
Infographie
Audio informatique
Informatique appliquée
  • icône décorative Portail de l’informatique