Introduction aux Systèmes Temps Réels François TOUCHARD Polytech Marseille et CPPM http://francois.touchard.perso.luminy.univ-amu.fr/ecm francois.touchard@univ-amu.fr
CV ingénieur ESPCI (physicien) doctorat en physique nucléaire et particules spécialisé dans les systèmes d'acquisition de données et de déclenchement des détecteurs de physique des particules recherche actuelle sur le détecteur ATLAS au CERN système de déclenchement grilles de calcul pour l'analyse des données professeur à l'université d'aix-marseille, Polytech Marseille (ex ESIL), département Informatique (site de Luminy) 2
Le tunnel du LHC au CERN
L'expérience ATLAS 100 millions de canaux à lire 40 millions de croisements/s 23 événements par croisement 1,2 MO produits par événement ~ 50 Tera octets par seconde 1/2 terrain un de immeuble foot étages ~dele7poids de la Tour Eiffel
L'expérience ATLAS
L'expérience ATLAS
Le système de déclenchement et d'acquisition 50 Tera octets produits par seconde ~ 300 M octets sauvegardés le reste est jeté (car déjà connu)
un événement, candidat de Higgs e+ e-
un événement, candidat de Higgs µ+ µ-
Présentation du cours Aperçu des systèmes temps réels et embarqués qu est-ce qu un système temps réel? comment vérifier a priori le comportement ordonnancement comment implémenter le comportement les outils de programmation 28h de cours et TD mélangés évaluation essentiellement sur les exercices proposés pendant les séances + réactivité merci de vous identifier 12
Introduction
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 souvent inclus dans un système plus vaste ~ 90% du marché des processeurs 14
Quelques exemples (1) asservissement par contrôle numérique capteur capteur procédé procédé actionneur actionneur mesure y(t) A/D A/D référence r(t) A/D A/D résultat u(t) yk rk Loi Loi de de contrôle contrôle calcul calcul uk D/A D/A 15
Quelques exemples (2) soit e(t) = r(t) y(t) u(t) va dépendre de 3 termes : soit T la période d'échantillonnage du signal un terme proportionnel à e(t) un terme proportionnel à l'intégrale de e(t) un terme proportionnel à la dérivée de e(t) 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 16
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 (période d'échantillonage) est important il peut être souhaitable de pouvoir le modifier concepts mis en jeu gestion du temps gestion des interruptions interaction avec l'utilisateur 17
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 18
Quelques exemples (5) important que les calculs soient terminés avant que l'on applique les corrections en résumé mais la durée des calculs n'est pas forcément constante 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 19
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...) 20
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 21
Quelques exemples (8) contrôle aérien hiérarchie des contrôles réponses contrôleur de trafic aérien gestionnaire de vol contrôleur de vol calculs complexes (optimisation) fiabilité respect des échéances temporelles commandes interface opérateur-système données locales (météo...) contrôleur de traffic aérien calculateur système virtuel navigation gestionnaire de vol calculateur système virtuel calculateur contrôleur de vol données locales de vol système physique 22
Quelques exemples (9) contrôleur de trafic aérien CPU CPU base de données des éléments de vol CPU réseau de communication réseau de communication processeur de visualisation processeur de surveillance des trajectoires 23
Quelques exemples (10) beaucoup d'autres systèmes ont des contraintes temporelles bases de données multimédia contrôle de vols salles de marché compression/décompression transmission 24
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 25
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 26
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 27
Caractéristiques importantes (2) Déterminisme but à atteindre pour prédire le comportement temporel du système fixer l'ordonnancement Fiabilité 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 du matériel tolérance aux fautes systèmes embarqués 28
Plan du cours Ordonnancement des tâches tâches indépendantes tâches avec des contraintes de dépendance gestion des situations de surcharge Systèmes d'exploitation pour le temps réel services attendus systèmes existants VxWorks (le système généraliste le plus employé) OSEK/VDX (un système spécialisé) Linux temps réel Bus pour le temps réel CAN VME Programmation système pour le temps réel (POSIX) gestion des tâches communication et synchronisation gestion des interruptions gestion du temps 29
ORDONNANCEMENT 30