Introduction à l’informatique temps réel Pierre-Yves Duval (cppm) Ecole d’informatique temps réel - La Londes les Maures 7-11 Octobre 2002 -Définition et problématique - Illustration par des exemples -Automatisme: contrôle, supervision, pilotage -Médecine -Navigation aérienne -Production automatisée - Traitement du signal - radar - Base de données temps réel - Multimédia - Télécommunications -Résumé et terminologie 1 Types de systèmes informatiques Systèmes transformationnels (calcul scientifique, gestion de BD) - les données sont disponibles au lancement - les instants de productions des résultats ne sont pas contraints Systèmes interactifs (systèmes transactionnels ou outils bureautiques) - les résultats dépendent de données produites par l’environnement - les instants de production respectent des valeurs statistiques Systèmes réactifs ou temps réel - résultats entièrement conditionnés par l’environnement connecté - les instants de production dépendent de la dynamique du procédé Définition Groupe CNRS sur la problématique temps réel 1988 Le comportement d’un système informatique est qualifié de « temps réel » lorsqu’il est assujetti à l’évolution d’un procédé qui lui est connecté et qu’il doit piloter ou suivre en réagissant à tous ses changements états. 2 Validité d’un programme TR Outre la correction algorithmique le temps intervient dans la validité du programme: -le temps de réaction doit être adapté aux événements externes -Le programme doit pouvoir fonctionner en continu en maintenant sa capacité à traiter le flux de données d’entrée -les temps de calculs sont connus (estimés) et peuvent être utilisés dans une analyse de réactivité Valider un système temps réel c’est démontrer rigoureusement que le système a le comportement spécifié Exemple: contrôle numérique Régulation ou asservissement simple Entrée de Référence r(t) yk, rk sont les valeurs échantillonnées k=0,1,2,3 … à la fréquence T fixe qui dépend du procédé et de la loi de contrôle. A/D A/D rk yk Loi de contrôle uk calcul y(t) Exemple: capteur procédé Dans un contrôle de moteur d’automobile on échantillonne plus fréquemment l’angle de rotation du vilebrequin toutes les 10-6 sec que la température du moteur toutes les 10 sec D/A u(t) actionneur 3 Exemple: contrôle, supervision et pilotage de système interface opérateurs Ces systèmes recouvrent une gamme d’applications très large et variée. contrôle commande et pilotage (multi-niveau) Ces systèmes ont une architecture hiéarchique avec au moins 2 niveaux: bas - interface physique haut - guidage/planification Interface physique événements mesures commandes procédé Exemple: contrôle, supervision de patients Niveau bas : contrôle de pression sanguine, rythme respiratoire, taux de glucose … Niveau haut: système expert qui inter-agit avec le personnel médical et sélectionne le tableau d’états à lui afficher niveau période Type exécution bas milliseconde à seconde Déterministe (toujours le même code) haut minutes ou heures Variables (dépend de la situation) 4 Exemple: Générateur cyclique Dans le cas de contrôleurs numériques ou pour les couches basses d’un contrôle de Patient on peut adopter une architecture logicielle très simple de type générateur cyclique. Principe: Le corps du programme est une boucle permanente qui tourne à une fréquence dite cycle de base et qui active des activités dont la fréquence est un multiple du cycle de base. On utilise un seul signal attaché à l’horloge et l’application gère à la fois l’activation des différentes activités et leur ordre exécution. Architecture très légère facile à implanter sur un micro-contrôleur sans OS. Exemple: Générateur cyclique Chaque 1/180 éme de seconde faire - Lecture/validation des capteurs sélectionnés, si défaut reconfiguration - Chaque 6 cycles (30 Hz) tâches avionique - lecture claviers, sélection du mode - normalisation des données et transformation des coordonnées - mise à jour des référence pour la trajectoire - Chaque 6 cycles (30 Hz) calculs - loi de contrôle phase 1 pour le contrôle de la dérive (glissement plan) - loi de contrôle phase 1 du roulis (axe horizontal) - loi de contrôle phase 1 du travers (axe vertical) - loi de contrôle de coordination des 3 axes - Chaque 2 cycles (90 Hz) en utilisant les résultats des 2 cycles précédents - loi de contrôle phase 2 pour le contrôle de la dérive - loi de contrôle phase 2 du roulis et coordination des 2 axes - Calcul loi de contrôle globale du travers à partir des résultats du cycle à 90hz - Sortie des commandes pour les actionneurs - Faire les auto-tests Attente du cycle suivant 5 Exemple: navigation aérienne Interfaces opérateurs sol Capteurs à terre Radars … Niveau 2 Calculs d’états Données de navigation Niveau 1 Contrôle de l’espace aérien Calculs d’états Gestion du vol Calculs d’états Niveau 0 Régulation du vol Capteurs embarqués avions actionneurs Exemple: contrôle de procédés manufacturiers (usines) Processus continus Processus discontinus modèle fonctionnel NBS optimisation supervision automatisme réflexe capteurs/actionneurs National bureau of Standards général atelier cellule machine équipement Gestion des flux contrôle/ commande 6 Commande de cellule Equipements moteurs Machine 1 Machine 3 Machine 2 Exemple: contrôle de procédés manufacturier Planification groupe Architecture matérielle type: Supervision/Gestion d’atelier Maintenance GPAO WAN DB groupe Réseau local industriel Contrôleur de cellule Réseau local industriel DB infos site Contrôleur de cellule Réseau local industriel Machine 1 Machine 2 Bus de terrain Machine 3 Bus de terrain 7 Exemple: Traitement du signal Le traitement du signal est utilisé pour: - filtrage digital pour extraire l’information pertinente - vidéo ou son pour compresser/décompresser - traitement radar L’application de traitement du signal type produit à chaque période échantillonnage une ou plusieurs sorties qui sont des sommes pondérées de n entrées: n x(k) = ? a(k,i) y(i) i=1 La complexité du calcul est au minimum en O(n) et est le plus souvent réalisé par des processeurs spécialisés de type DSP. Exemple: application radar Mémoire partagée Batterie de processeurs de signaux Échantillons/bins trajectoires Contrôle/états DSP Paramètres de traitements Processeur de données 8 Exemple: bases de données temps réel Elles sont utilisées dans des domaines tels que: -cotations financières -gestion de trajectoires de mobiles -fichiers temps réel -gestion des états partagés de systèmes La différence entre une base de données temps réel et une base de données conventionnelle tient dans la nature transitoire des informations qu’elle contient. Elles sont destinées à contenir des « objets image » qui représentent les états d’objets très dynamiques du monde réel Exemple: base de données temps réel Définitions: Cohérence temporelle absolue (absolute temporal consistency) Un ensemble de données associées à un objet est dit « absolument cohérent en temps » Si l’âge maximum de toute donnée de l’ensemble est inférieur à un seuil fixe. Cohérence temporelle relative (relative temporal consistency) Un ensemble de données associées à un objet est dit « relativement cohérent en temps» Si la différence d’âge entre les donnée de l’ensemble est inférieur à un seuil fixe 9 Exemple: base de données temps réel Modèle de cohérence: Dans l’implantations des bases de données temps réel on privilégiera la rapidité sur la sécurité des données (pas de commit en 2 phases pour sérialiser les mises à jour). Ceci se justifie aussi par le fait que dans la plupart des cas il y a peu de concurrence en écriture sur la même donnée. Pour la lecture il faut faire attention au règles de causalités qui peuvent imposer que tous les consommateurs aient une même perception dynamique d’évolution des objets (essentiellement un problème en environnement de base de donnée répartie) Exemple: base de données temps réel Exemple: spécification de quelques bases de données temps réel (1996) application Taille octets temps de réponse moyen temps de réponse maxi cohérence absolue cohérence relative conservatio n Contrôle du trafic aérien 20000 0,5 ms 5 ms 3 sec 6 sec 12 heures Mission aérienne 3000 0,05ms 1 ms 0,05 sec 0,2 sec 4 heures Mission spatiale 5000 0,05ms 1 ms 0,20 sec 1 sec 25 ans 0,8ms 5 sec 1 sec 2 sec 24 heures Contrôle de procédé en usine 10 Exemple: multimédia Le stockage, la transmission et l’affichage de flux vidéo, audio, image ou graphique ont des contraintes temporelles fortes Cas de l’image: Standard vidéo 30 images/sec (TVHD 60 images/sec), téléconférence 10 à 20 MPEG-2 débit en compression selon l’application de 1,5 à 35 Mbit/sec MPEG-2 est un très gros consommateur de CPU (surtout en compression) Cas du son: De 16kbit/sec téléphone à 128kbit/sec son qualité CD Dans un diffusion son/image la synchronisation des lèvres impose un décalage de moins de 80 msec entre les flux audio et vidéo. L’oreilles est très sensible aux glitchs ou trous de quelques centaines de millisecondes. Exemple: multimedia Les applications multimédia ont donc des spécifications temporelles fortes, particulièrement sur les applications inter-actives (TV en direct) ou les compression, transmission et compression des deux flux doivent respecter des contraintes de: -délai de bout en bout -régularité des flux -synchronisation des flux 11 Résume sur les classes d’applications temps réel classe caractéristiques illustration Purement cyclique Les tâches s’exécutent périodiquement Les I/O sont scrutées périodiquement Les demandes en ressources sont stables (varient peu) Un contrôleur numérique Un calcul de FFT sur un échantillon de taille fixe Majoritairement cyclique Les tâches s’exécutent périodiquement Le système doit répondre à quelques I/O événements externes (commandes, récupération d’erreur …) Avionique Contrôle de procédé classe caractéristiques illustration Asynchrones mais partiellement prévisible Les tâches sont non périodiques Leur durée exécution est très variable Les ressources consommées sont variables d’une exécution à l’autre MAIS Les variations sont bornées et on a des informations statistiques sur les variations Multimédia Poursuite dans les traitements radar Télécommunications Acquisition de données HEP Traitements de flux de données (data flow) Asynchrone et imprévisible Chargée de réagir à des événements asynchrones Déclenchement de tâches de haute complexité Contrôleur très intelligent 12 Terminologie Systèmes réactifs ou systèmes synchrones Systèmes qui réagissent instantanément à des stimulations externes (le temps de la réaction est négligeable vis-à-vis du rythme de stimulation, exemple jeux vidéo) Systèmes cycliques Systèmes dont tout le comportement n’est rythmé que par le temps sur la base d’une horloge. Systèmes asynchrones Systèmes dont le comportement est un mélange des deux précédents et dont le temps D’exécution des tâches peut entraîner des délais dans la prise en compte événements. Stimulé par des événements externes asynchrones et des horloges. 13