Informatique temps-réel Chapitre 1: introduction au temps-réel

Documents pareils
Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

Introduction aux systèmes temps réel. Iulian Ober IRIT

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

Temps Réel. Jérôme Pouiller Septembre 2011

Introduction au temps réel

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Exécutif temps réel Pierre-Yves Duval (cppm)

Détection d'intrusions en environnement haute performance

Cours A7 : Temps Réel

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009

Introduction aux systèmes temps réel

Ordonnancement temps réel

Conception des systèmes répartis

Ordonnancement temps réel

Les systèmes de base de données temps réels. Pokrovskaya Natalia, Kabbali Nadia

Brève introduction à la recherche d!information sur le Web à base d!agents logiciels

1 Mesure de la performance d un système temps réel : la gigue

Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement

Les diagrammes de modélisation

Implémentation Matérielle des Services d un RTOS sur Circuit Reconfigurable

Chapitre 1 : Introduction aux bases de données

Éléments d'architecture des ordinateurs

JOURNEES SYSTEMES & LOGICIELS CRITIQUES le 14/11/2000. Mise en Œuvre des techniques synchrones pour des applications industrielles

Service de réplication des données HP pour la gamme de disques Continuous Access P9000 XP

Conservation des documents numériques

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Nom-Projet MODELE PLAN DE MANAGEMENT DE PROJET

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Architecture de la grille

Le Collège de France crée une chaire pérenne d Informatique, Algorithmes, machines et langages, et nomme le Pr Gérard BERRY titulaire

Cours de Génie Logiciel

Un tempo de Reel sur un rythme de Java

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

Applications Embarquées Critiques

Projet E-formation. Système MOODLE_ COLLABORATIF. Spécifications fonctionnelles

WEA Un Gérant d'objets Persistants pour des environnements distribués

CIRSEE POLE INFORMATIQUE TECHNIQUE. Support et service après vente.

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Nécessité de concevoir un outil de recherche PDF Présentation des fonctionnalités d'indexation et de recherche... 3

X-Rite RM200QC. Spectrocolorimètre d'imagerie portable

Objectifs : piloter l organisation à travers des indicateurs (regroupés dans un tableau de bord), et informer des résultats la hiérarchie.

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

CAHIER DE S CHARGE S Remote Workload Manager

Programme de la 1ère année

Introduction : présentation de la Business Intelligence

Projet Active Object

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000

Le génie logiciel. maintenance de logiciels.

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

Analyse de performance, monitoring

Annexe : La Programmation Informatique

CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280

Livre blanc Mesure des performances sous Windows Embedded Standard 7

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Chapitre I : le langage UML et le processus unifié

PROGRAMMATION EVENEMENTIELLE sur EXCEL

ORACLE DIAGNOSTIC PACK 11G

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Programmation de services sensibles au contexte en téléphonie sur IP

Suite IBM Tivoli IT Service Management : comment gérer le système d information comme une véritable entreprise

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Document d accompagnement pour le référentiel national du C2i niveau 2 Métiers de l environnement et de l aménagement durables

Conduite et Gestion de Projet - Cahier des charges

Fiche méthodologique Rédiger un cahier des charges

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

ITIL V2. La gestion des changements

RTDS G3. Emmanuel Gaudin

CH.3 SYSTÈMES D'EXPLOITATION

Vérifier la qualité de vos applications logicielle de manière continue

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

EL48 Machines electriques. Energie et environnement C 28 TD 28 TP 18 THE 46. Niveau GXO 1-GX02 Connaissances scientifiques EL47 Oui Oui

Extrait des Exploitations Pédagogiques

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Le modèle conceptuel des traitements

Boîtier pour disque dur externe 3,5" (8,89cm) USB 2.0

UFR d Informatique. FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE

Méthodes de développement

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Circuit du médicament informatisé

Conditions générales d utilisation

NOUVELLES FONCTIONNALITÉS DE MYQ 4.4

Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO

ÉCONOMIE ET GESTION LYCÉES TECHNOLOGIQUE ET PROFESSIONNEL

Urbanisation des Systèmes d Information Architecture d Entreprise. 04 Architecture du SI : identifier et décrire les services, structurer le SI

CATALOGUE FORMATION 2014/2015 Produits & Logiciels

Efficace et ciblée : La surveillance des signaux de télévision numérique (2)

Exigences système Edition & Imprimeries de labeur

Plan de la conférence. Virtualization. Définition. Historique. Technique. Abstraction matérielle

Guide d'installation. Release Management pour Visual Studio 2013

Transcription:

Informatique temps-réel Chapitre 1: introduction au temps-réel Prof. Pierre Manneback Service d Informatique FACULTE POLYTECHNIQUE DE MONS Pierre.Manneback@fpms.ac.be Informatique Temps-Réel 1.1

Source Les slides de ce chapitre sont tirés du cours «Temps-réel et Systèmes d Exploitation» de Claude Baron et Frédéric Bagnol, ONERA et ENSEHEIT, Toulouse. Informatique Temps-Réel 1.2

Plan du chapitre 1 1. Cadre général 2. Architecture générale et mode de fonctionnement 3. Introduction sur les contraintes d exécution des tâches 4. Introduction à la conception de systèmes T.R. 5. Introduction aux O.S. (Operating System) Temps Réel 6. Introduction aux langages du Temps Réel Informatique Temps-Réel 1.3

Qu'est-ce 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 Informatique Temps-Réel 1.4

Définition du T.R. Un système temps réel est un système dans lequel l'exactitude des applications ne dépend pas seulement de l'exactitude des résultats mais aussi du temps auquel ce résultat est produit. Si les contraintes temporelles de l'application ne sont pas respectées, on parle de défaillance du système. Il est donc essentiel de garantir le respect des contraintes temporelles du système. Informatique Temps-Réel 1.5

Un système T.R. interagit avec son environnement Un système T.R. ou système réactif est assujetti à l'évolution dynamique de l'environnement qui lui est connecté et dont il doit contrôler le comportement. rythme de l'interaction Système informatique données mesures événements Environnement (ex : une chaîne de production, une réaction chimique ) temps de réponse imposé par la dynamique de l'environnement commandes Informatique Temps-Réel 1.6

Les systèmes T.R. par rapport aux autres systèmes informatiques Système Transformationnel Activité de calcul, qui lit ses données et ses entrées lors de son démarrage, qui fournit ses sorties, puis meurt. Système Interactif Système en interaction quasi-permanente avec son environnement. La réaction du système est déterminée par les événements reçus et par l'état courant. Le rythme de l'interaction est déterminé par le système et non par l'environnement. Système Réactif ou Temps Réel Système en interaction permanente avec son environnement. La réaction du système est déterminée par les événements reçus et par l'état courant. Le rythme de l'interaction est déterminé par l'environnement et non par le système. Informatique Temps-Réel 1.7

Caractéristiques du T.R. Un système Temps Réel reçoit des événements émanant du procédé à contrôler. Ces événements peuvent être périodiques ou non. Le système doit réagir avant un délai ou une date fixée Aucun événement ne doit être raté par le système Ne pas réagir à temps est considéré comme une défaillance Un système Temps Réel est souvent critique et doit souvent être tolérant aux pannes nécessité de mécanismes de tolérance aux pannes (réplications matérielles, vérification formelles ) Informatique Temps-Réel 1.8

Ordre de grandeur des contraintes temporelles très différents suivant les systèmes 1h Temps Contrôle En chimie 1 min Contrôle fabrication 1 s Contrôle stockage 10 ms 1 ms 1 µs Systèmes vocaux Systèmes radar Systèmes Mesures scientifiques Robotique Informatique Temps-Réel 1.9

Nécessité de synchronisation Deux entités : l'environnement (ou le procédé) à contrôler et le système informatique Temps Réel deux temps : le temps de l'environnement et le temps du système Temps Réel Temps de l'environnement = temps chronométrique (le temps réel) Temps du système informatique = temps chronologique, constitué de la suite des événements ou des instructions du système Informatique Temps-Réel 1.10

Nécessité de synchronisation (2) Exigence du temps réel = concordance entre le temps chronologique de l'environnement et le temps chronométrique du système Le système informatique doit mettre ses actions en phase avec le temps chronométrique de l'environnement Les actions du système seront des tâches et des communications => Nécessité de techniques de synchronisation et d'ordonnancement des tâches et des communications Informatique Temps-Réel 1.11

Définition de tâche, job, processus et thread Une tâche est l exécution d une action bien spécifique. Elle sera normalement codée par une suite d instructions contiguës dans un programme informatique (fonction, procédure). Elle aura un temps de démarrage et un temps de fin. Elle pourra être constituée d un certain nombre de jobs (ou sous-tâches). Un processus est un programme en cours d exécution. Il peut être constitué d un ou plusieurs «threads» (ou processus légers) représentant les fils d exécution. Il y aura correspondance entre tâches et processus ou threads. A un processus (thread) correspondra une (de préférence) ou plusieurs tâches. Informatique Temps-Réel 1.12

Quelques exemples de systèmes T.R. Commande et contrôle de chaînes de production Guidage de systèmes mobiles (robotique ) Systèmes embarqués (avion, train, automobile ) Surveillance de réactions ou phénomènes physiques (nucléaire, chimie, ) Contrôle de malades et assistance d'opérations médicales Systèmes de communication et multimédia Systèmes dédiés (conduite d'expérience scientifique, traitement du signal ) Informatique Temps-Réel 1.13

Exemple 1: robot de production Un robot, réalisant une activité spécifique (peinture, assemblage, tri) sur une chaîne de production, doit effectuer son travail en des temps fixés par la cadence de fabrication. S'il agît trop tôt ou trop tard, l'objet traité sera détruit ou endommagé conduisant des conséquences financières ou humaines graves. Informatique Temps-Réel 1.14

Exemple 2: téléphone mobile Le système de contrôle-commande doit remplir plusieurs fonctions dont certaines ont des contraintes temporelles fortes pour avoir une bonne qualité de service. La première fonction est de transmettre et de recevoir les signaux de la parole. En parallèle, il est nécessaire de localiser en permanence le relais le plus proche et donc de synchroniser les envois par rapport à cette distance. Des messages de traces de la communication sont aussi émis avec une périodicité de plusieurs secondes. Les contraintes temporelles imposées au système doivent être imperceptibles à l'utilisateur. Informatique Temps-Réel 1.15

Exemple 3: système de vidéoconférence Le système doit permettre l'émission et la réception d'images numérisées à une cadence de 30 images par seconde pour avoir une bonne qualité de service. Afin de minimiser le débit du réseau, une compression des images est effectuée. D'autre part la parole doit être aussi transmise; bien que correspondant à un débit d'information moindre, la régularité de la transmission est nécessaire pour une reproduction correcte. De plus ce signal doit être synchronisé avec le flux d'images. L'ensemble de ces traitements (numérisations images et parole, transmission, réception, synchronisation, ) sont réalisés en cascade, mais avec une cohérence précise et des contraintes temporelles fortes. Informatique Temps-Réel 1.16

Temps Réel Processeur rapide Dépend de la spécification des besoins besoin d'un temps de réaction court (1 ms) pour le contrôle d'un avion de combat besoin d'un temps de réaction moins court (10 s) pour le contrôle d'un chaîne de production besoin d'un temps de réaction plus lent (1min) pour le contrôle d'une réaction chimique l'important est de respecter l'échéance réagir trop tôt est parfois également une faute Temps Réel = Ponctualité = respect des contraintes temporelles Informatique Temps-Réel 1.17

Temps réel dur ou lâche Deux notions de criticité face au manquement d'une échéance Contraintes temps réel strictes : le dépassement d'une échéance est catastrophique =>T.R. dur (hard R.T.) Contrainte temps réel relatives : le dépassement d'une échéance peut être toléré (dans une certaine mesure) => temps réel lâche (soft R.T.) Dans le cas des systèmes Temps Réel durs, on cherchera à obtenir un comportement prévisible, déterministe et fiable Dans le cas des systèmes Temps Réel lâches, on cherchera à minimiser la probabilité de rater une échéance plusieurs fois de suite... Informatique Temps-Réel 1.18

Plan du chapitre 1 1. Cadre général 2. Architecture générale et mode de fonctionnement 3. Introduction sur les contraintes d exécution des tâches 4. Introduction à la conception de systèmes T.R. 5. Introduction aux O.S. (Operating System) Temps Réel 6. Introduction aux langages du Temps Réel Informatique Temps-Réel 1.19

Principe général Quelle que soit la nature et la complexité du système, on décompose un système temps réel en : un système contrôlé un système de contrôle Interface capteurs capteurs Système informatique Procédé Interface actionneurs actionneurs Environnement Informatique Temps-Réel 1.20

Principe général (2) Le système contrôlé = environnement équipé d'une instrumentation qui réalise l'interface avec le système de contrôle Le système de contrôle = système informatique (hardware et software) dont la mission est d'agir sur l environnement en fonction de son état de manière à le contrôler Interface capteurs capteurs Objet de ce cours Système informatique Système de contrôle Interface actionneurs actionneurs Procédé Système contrôlé Informatique Temps-Réel 1.21

Exemples de systèmes contrôlés Equipements isolés : robot, machine à laver, caméra, radar, moteur Systèmes complexes : chaîne de production, avion, centrale nucléaire, contrôle aérien, surveillance médicale... Informatique Temps-Réel 1.22

Interaction environnement/système informatique Via les mesures issues des capteurs et les commandes envoyées aux actionneurs Acquisition des mesures périodiques à une cadence compatible avec la dynamique de l environnement Elaboration et envoi des commandes dans un laps de temps compatible avec la dynamique de l environnement Double rôle du système de contrôle observateur : acquisition des mesures contrôleur : mise en œuvre des lois de commandes et émission des commandes vers des actionneurs spécifiques Informatique Temps-Réel 1.23

Le système de contrôle peut être varié, suivant les besoins Système de contrôle données mesures événements Environnement Peut être réalisé par commandes un automate programmable un système électronique un système informatique (harware et logiciels) Objet de ce cours Informatique Temps-Réel 1.24

Principe de fonctionnement des systèmes informatiques de contrôle: boucle infinie Tant que VRAI faire Acquisition des entrées (données capteurs, mesures ) Calcul des ordres à envoyer à l environnement Émission des ordres modes de fonctionnement : fonctionnement cyclique ou cadencé (time driven) fonctionnement événementiel (event driven) fonctionnement mixte : traitements périodiques et apériodiques (déclenchés sur événements) Informatique Temps-Réel 1.25

Fonctionnement cyclique scrutation périodique d'une mémoire d'entrée (polling) A chaque top d'horloge faire Lecture de la mémoire des entrées Calcul des ordres à envoyer au procédé Émission des ordres système peu "réactif" si l'environnement produit des informations à des fréquences différentes => oblige à prévoir toutes les réactions du système dans la même boucle ou, à imbriquer des boucles de fréquences multiples => difficultés de réalisation, de lisibilité du code, d'évolution Ne convient que pour les systèmes de contrôles très simples Informatique Temps-Réel 1.26

Fonctionnement événementiel activation du système à chaque événement ( notion d'interruption) while (1) { -Attendre les événements (interruption) A chaque interruption faire - Lecture de l'information arrivée - Activation du traitement correspondant - Émission des ordres issus de ce traitement } Informatique Temps-Réel 1.27

Fonctionnement événementiel (2) Que faire si une interruption survient alors que le système est en train de traiter une interruption précédente? notion de priorité des interruptions notion de tâche associée à une ou plusieurs interruptions mécanisme de préemption (réquisition du processeur) et de reprise de tâche gestion de l'exécution concurrente des tâches (ordonnancement) Un système temps réel est un système multitâche incluant un gestionnaire de tâches (ordonnanceur) Informatique Temps-Réel 1.28

Système multitâche => Pour des raisons de facilité de conception, de mise en œuvre et d'évolutivité, une application temps réel est un système multitâche : tâches associées à un ou des événements tâches associées à une ou des réactions tâches associées à une entité externe à contrôler tâches associées à un traitement particulier programme temps réel = ensemble de tâches coopérantes Coopération entre tâches tâche : tâche Informatique Temps-Réel 1.29

L ordonnanceur La partie logicielle d'une application temps réel est un ensemble de tâches synchronisées, communicantes et partageant des ressources critiques. Le rôle essentiel du système informatique temps réel est donc de gérer l'enchaînement et la concurrence des tâches en optimisant l'occupation de l'unité centrale : c est la fonction de l ordonnanceur. Informatique Temps-Réel 1.30

Organisation générale d'un système temps réel tâches Ordonnanceur Services de base Noyau Noyau + primitives (de services) + ordonnanceur = système d'exploitation temps-réel Informatique Temps-Réel 1.31

Un système T.R. est réduit Moins de fonctionnalités que Linux ou Windows! Capacité d embarquement sur des systèmes à mémoire et CPU limités Vitesse de réaction plus rapide Fonctionnalités différentes Ordonnanceurs spécialisés Horloge, Synchronisation précises Informatique Temps-Réel 1.32

Plan du chapitre 1 1. Cadre général 2. Architecture générale et mode de fonctionnement 3. Introduction sur les contraintes d exécution des tâches 4. Introduction à la conception de systèmes T.R. 5. Introduction aux O.S. (Operating System) Temps Réel 6. Introduction aux langages du Temps Réel Informatique Temps-Réel 1.33

Contraintes d exécution des tâches Ces contraintes sont à spécifier de la manière la plus précise possible dans le cahier des charges. Elles sont notamment des contraintes du système d implantation de criticité des tâches d activation temporelles etc Informatique Temps-Réel 1.34

Contraintes au niveau système des contraintes d environnement Mémoire CPU Consommation énergétique Performances des contraintes de bon fonctionnement Economiques Sécuritaires de certification d intégration Informatique Temps-Réel 1.35

Contraintes d implantation Portent sur l identité du processeur sur lequel une tâche est autorisée à s'exécuter Problème crucial en cas de redondance matérielle/logicielle pour la conception de systèmes sûrs de fonctionnement Informatique Temps-Réel 1.36

Contraintes de criticité Sensibilité de la tâche (mesurée par les conséquences de l occurrence d une faute) sur le bon fonctionnement du système. Non-respect des dates de réveil et échéance d une tâche conséquences dont la sévérité est variable (perte acceptable à catastrophique) A chaque tâche est affecté un niveau de criticité qui conduira à privilégier l'exécution des tâches de grande importance (priorités) Informatique Temps-Réel 1.37

Contraintes d activation L exécution d une activité peut commencer au plus tôt après la réalisation d une condition d activation (par exemple occurrence d un événement externe, disponibilité de ressources, fin d une autre activité, condition de synchronisation) Possibilité de contraindre la condition dans le temps (time-out) Informatique Temps-Réel 1.38

Contraintes temporelles Différents types de contraintes temporelles selon que l activité est : périodique (cyclique) : activité réalisée une fois par période T, ex: acquisition d informations sporadique (asynchrone) : réalisée à la demande ou sous des conditions d activation non périodiques ex: événements, détection d une faute, intervention humaine Informatique Temps-Réel 1.39

Contraintes temporelles (2) date de début au plus tôt, date de début au plus tard La date réelle de début devra être : postérieure à la date de réalisation de la condition d activation et à la date de début au plus tôt antérieure à la date de début au plus tard date de fin au plus tôt, date de fin au plus tard La date de fin d activité (deadline) devra être : postérieure à la date de fin au plus tôt antérieure à la date de fin au plus tard Informatique Temps-Réel 1.40

Plan du chapitre 1 1. Cadre général 2. Architecture générale et mode de fonctionnement 3. Introduction sur les contraintes d exécution des tâches 4. Introduction à la conception de systèmes T.R. 5. Introduction aux O.S. (Operating System) Temps Réel 6. Introduction aux langages du Temps Réel Informatique Temps-Réel 1.41

Caractéristiques nécessaires à un système T.R. Les contraintes d un système T.R. impliquent des propriétés à satisfaire pour développer un système T.R. Fiabilité Prédictibilité Préemptibilité des tâches Bonne gestion des communications inter-tâches Prise en compte du non-déterminisme d ordre d exécution des tâches Informatique Temps-Réel 1.42

Nécessité de fiabilité Un système T.R. est souvent un système critique (devant être valide à presque 100%) approche qualité par l utilisation systématique de méthodologies rigoureuses pour la conception, réalisation, validation, évolution et maintenance des systèmes logiciels Informatique Temps-Réel 1.43

Nécessité de prédictibilité Prédictibilité : qualité d un système qui, à partir de la connaissance de son état présent permet d assurer la connaissance de son comportement dans le futur et garantit la maîtrise de son fonctionnement en cas de défaillance potentielle La prédictibilité doit permettre de déterminer à l'avance si un système va respecter ses contraintes temporelles. Elle nécessite La connaissance des paramètres liés aux calculs des activités et des défaillances potentielles Informatique Temps-Réel 1.44

Nécessité de préemptibilité Préemptibilité: réquisition possible des ressources par une tâche Une tâche doit pouvoir être interrompue par tâche de plus haute priorité retrait possible des ressources (processeur, mémoire) d une tâche pour les affecter à une autre tâche (reprise ultérieure quand les circonstances le permettront) Informatique Temps-Réel 1.45

Nécessité d une bonne gestion des communications inter-tâches Les tâches concourent à contrôler/commander un environnement Elles interagissent entre elles (émission/réception de signaux de synchronisation + informations) : tenir compte de délais de communication contrôler la cohérence des horloges Informatique Temps-Réel 1.46

Nécessité de prise en compte du nondéterminisme Le problème du non-déterminisme: imprévisibilité de l ordre d exécution de tâches dû à des séquences d actions interrompues par des événements externes asynchrones à des instants et dans un ordre imprévisibles pose de sérieux problèmes pour s assurer de la maîtrise du comportement du système (respect des contraintes temporelles) Ordonnancer strictement pour réduire le non-déterminisme Informatique Temps-Réel 1.47

Conception et développement d un système T.R. Etape 1: définition du cahier des charges La satisfaction de ces besoins nécessitent le suivi d une méthodologie rigoureuse de conception et développement du logiciel Etapes classiques du développement 1. définition du cahier des charges (analyse des besoins) établir clairement les exigences du client (nature du problème, performances exigées, ressources matérielles, criticité des tâches, contraintes temporelles, etc) Informatique Temps-Réel 1.48

Conception et développement d un système T.R. Etape 2: spécification fonctionnelle formaliser les exigences du client et les faire valider recensement de tous les signaux et interruptions, les états qui traduisent l'évolution du comportement du procédé analyse fonctionnelle (décomposition en tâches et fonctionnalités de ces tâches + analyse temporelle) Informatique Temps-Réel 1.49

Conception et développement d un système T.R. Etape 3: conception générale identification de l'architecture matérielle et logicielle identification de ce qui sera réalisé par du matériel identification de la topologie matérielle de l'architecture identification des tâches» forte cohésion interne à chaque tâche» faible cohésion entre les tâches choix d'une stratégie d'ordonnancement et éventuellement d'un OS temps réel Informatique Temps-Réel 1.50

Conception et développement d un système T.R. Etape 4: conception détaillée + programmation conception des composants matériels conception détaillée des tâches : définition des attributs des tâches : priorité caractéristiques temporelles (durée, échéances ) ressources nécessaires programmation des tâches Informatique Temps-Réel 1.51

Conception et développement d un système T.R. Etape 5: tests Tests par simulation Ces tests amènent bien souvent à préciser et revoir les étapes 1, 2 et 3 Tests sur installation pilote Ces tests amènent bien souvent à préciser et revoir les étapes 1, 2 et 3 Livraison Pour les systèmes critiques, les tests doivent être remplacés par des vérifications formelles Informatique Temps-Réel 1.52

Plan du chapitre 1 1. Cadre général 2. Architecture générale et mode de fonctionnement 3. Introduction sur les contraintes d exécution des tâches 4. Introduction à la conception de systèmes T.R. 5. Introduction aux O.S. (Operating System) Temps Réel 6. Introduction aux langages du Temps Réel Informatique Temps-Réel 1.53

Architecture logicielle d'un système temps réel Application Mesures Tâche i Tâche j Tâche k Tâche x Tâche y Commandes Requête Activation, Horloge temps réel Noyau ou Exécutif T.R. Gestion du temps Gestion des événements Interruptions Gestion des interruptions Primitives Ordonnanceur Informatique Temps-Réel 1.54

Relation tâches et noyau temps réel Une application temps-réel étant un système multi-tâche, le rôle essentiel du noyau temps réel est donc de gérer l'enchaînement et la concurrence des tâches Ainsi le système temps réel centralise toutes les demandes d'activation de tâches et gère des tables lui permettant de comparer les priorités et l'état de ces diverse tâches, ainsi que l'état d'occupation des ressources. La décision d'activation d'une tâche étant prise, le système temps réel lance les modules de programmes correspondant à cette tâche et lui alloue les ressources disponibles. Une tâche activée peut appeler le noyau temps réel par une requête. Les différentes requêtes sont servies par des modules du système temps réel appelées primitives. La tâche activée occupe le processeur jusqu'à la fin de son exécution sous le respect des conditions suivantes : elle ne réalise pas d'opérations d'entrées-sorties les ressources utilisées sont disponibles aucun événement extérieur ne revendique le déroulement d'une tâche plus prioritaire. Tâche i Requête Noyau temps réel Activation Tâche j Exécution Exécution Exécution programme primitive et ordonnanceur programme Informatique Temps-Réel 1.55

Les services de coopération entre les tâches synchronisation événements - SIGNAL_EVT(signaler l'occurrence d'un événement) - ATTENDRE_EVT(attendre l'occurrence d'un événement) Primitive bloquante sémaphores - PRENDRE_SEM (demande d'un sémaphore) Primitive bloquante (sémaphore déjà pris) - RENDRE_SEM (libération d'un sémaphore) rendez-vous communication boîtes aux lettres - DEPOSER_DONNEE (écriture d'une donnée) Primitive bloquante (BAL pleine) - RETIRER_DONNEE (lecture d'une donnée) Primitive bloquante (BAL vide) tubes partage de ressources critiques sémaphores d'exclusion mutuelle (mutex) Tâche i Tâche i Tâche i xxx Tâche j Tâche j Informatique Temps-Réel 1.56 R Tâche j

Besoins des RT-OS (real-time operating systems) Un RT-OS doit être: Configurable Il ne doit inclure que les composants nécessités par l application (ressources limitées ) Modulaire Différents modules sans trop d inter-dépendances Modules chargeables ou non, suivant les besoins Prévisible Validation possible Bornes supérieures pour les fonctions-systèmes au niveau utilisation des resources (CPU, mémoire) Informatique Temps-Réel 1.57

Conception de RTOS 2 approches: Extension d OS généraux par des fonctionnalités TR (notamment nouveaux ordonnancements, timers) RTLinux, Windows CE, etc OS spécialisés Noyaux rapides, petits et adaptés QNX, VxWORKS, etc Avantages pour les 2 approches extensions OS: programmation, compatibilité, terrain connu OS spécialisés: taille, performance, adaptation Informatique Temps-Réel 1.58

Conception RTOS (2) Special purpose kernel General purpose kernel (léger) (lourd) Informatique Temps-Réel 1.59

Extensions d OS généralistes: RT-Linux Task Task Task scheduler Linux driver interrupts I/O Hardware RT-Linux RT-Task RT-Scheduler interrupts RT-Task interrupts Informatique Temps-Réel 1.60

RT-OS spécialisés RT-Task RT-Task Task Task Task Hardware POSIX 1.b scheduler RT Kernel drivers I/O, interrupts Informatique Temps-Réel 1.61

Plan du chapitre 1 1. Cadre général 2. Architecture générale et mode de fonctionnement 3. Introduction sur les contraintes d exécution des tâches 4. Introduction à la conception de systèmes T.R. 5. Introduction aux O.S. (Operating System) Temps Réel 6. Introduction aux langages du Temps Réel Informatique Temps-Réel 1.62

sémantique synchrone / sémantique asynchrone Sémantique synchrone (Lustre, Esterel ) Sémantique asynchrone (Ada, C, Java ) durées des actions considérées "nulles" (négligeables devant la dynamique de l'environnement) déterminisme et simplicité possibilité de vérifier formellement le comportement du système contexte d utilisation limité plusieurs tâches concurrentes entrelacement de ces tâches synchronisation par rendezvous et sémaphore non-déterminisme complexité Informatique Temps-Réel 1.63

Quels critères pour le choix de langage de programmation de systèmes temps réel? Standard international large diffusion portabilité et réutilisabilité aisées qualité des Ateliers Logiciel associés (outils de test, d'analyse, de gestion de configuration ) pérennité (20 à 30 ans par exemple dans l'avionique) abstraction face au système et aux exécutifs temps réel simplicité de programmation, notamment pour la programmation de tâches ou processus communicants maîtrise des temps d'exécution (est-il possible de prédire ces temps?) modularité du développement et du programme qualité du code généré (correction et performance du code généré par les compilateurs ) Informatique Temps-Réel 1.64

ADA 95??? Standard international large diffusion portabilité et réutilisabilité aisées qualité des Ateliers Logiciel pérennité abstraction face à la cible et aux exécutifs temps réel simplicité de programmation, maîtrise des temps d'exécution modularité du développement et du programme qualité du code généré (correction et performance ) concepts offerts : typage fort, programmation objet... programmation multitâche, synchronisation par rendez-vous et sémaphore, gestion des exceptions Informatique Temps-Réel 1.65

C associé à un O.S. Temps Réel :???? Standard international large diffusion portabilité et réutilisabilité aisées qualité des Ateliers Logiciel pérennité abstraction face à la cible et aux exécutifs temps réel simplicité de programmation maîtrise des temps d'exécution (est-il possible de prédire ces temps) modularité du développement et du programme qualité du code généré (correction et performance ) Informatique Temps-Réel 1.66

Langages synchrones (Esterel, )? standard international large diffusion portabilité et réutilisabilité aisées qualité des Ateliers Logiciel pérennité abstraction face à la cible et aux exécutifs temps réel simplicité de programmation maîtrise des temps d'exécution (est-il possible de prédire ces temps) modularité du développement et du programme qualité du code généré Informatique Temps-Réel 1.67

Conclusion de l introduction Informatique temps-réel = développement logiciel d un système de contrôle Nécessite la décomposition de ce système en tâches «fonctionnelles» Nécessite l ordonnancement, la synchronisation, la communication entre ces tâches suivant les exigences temporelles de l environnement à contrôler Informatique Temps-Réel 1.68

Conclusion de l introduction (2) A chaque tâche, faire correspondre un processus ou un thread (processus léger) Nécessité de bien maîtriser la gestion et la communication entre processus (chapitre 2 et TP, sous Linux et en C). Avoir une méthodologie de développement adapté au T.R. (chapitre 3) Comprendre les mécanismes d ordonnancement T.R. (chapitre 4) Savoir programmer les threads (chapitre 5) Informatique Temps-Réel 1.69