Systèmes temps réels. Fabien Calcado, Matthieu Lemerre CEA, LIST. Email: prénom.nom@cea.fr. Contenu du cours. Généralités. Plan du cours.



Documents pareils
INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Métriques de performance pour les algorithmes et programmes parallèles

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

Ordonnancement temps réel

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

Conception des systèmes répartis

Cours de Systèmes d Exploitation

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

Problèmes liés à la concurrence

Processus d Informatisation

Génie Logiciel LA QUALITE 1/5 LA QUALITE 3/5 LA QUALITE 2/5 LA QUALITE 4/5 LA QUALITE 5/5

Initiation au HPC - Généralités

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

REALISATION d'un. ORDONNANCEUR à ECHEANCES

ELP 304 : Électronique Numérique. Cours 1 Introduction

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

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

2. Activités et Modèles de développement en Génie Logiciel

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

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

Projet Active Object

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

White Paper - Livre Blanc

CEG4566/CSI4541 Conception de systèmes temps réel

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

Le génie logiciel. maintenance de logiciels.

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

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Chapitre 4 : Exclusion mutuelle

Ordonnancement temps réel

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Systèmes et algorithmes répartis

Extrait des Exploitations Pédagogiques

Cours A7 : Temps Réel

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

LA MESURE INDUSTRIELLE

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

Principe et règles d audit

corporate Output Management

Le test automatisé des applications web modernes

Surveillance et maintenance prédictive : évaluation de la latence de fautes. Zineb SIMEU-ABAZI Univ. Joseph Fourier, LAG)

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

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

MEAD : temps réel et tolérance aux pannes pour CORBA

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Introduction au temps réel

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

VIII- Circuits séquentiels. Mémoires

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Dossier d'étude technique

Sommaire. Couverture de zone de surveillance dans les réseaux de capteurs. De quoi parle-t-on ici (1/2)? Objectif. De quoi parle-t-on ici (2/2)?

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

Qualité du logiciel: Méthodes de test

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

Réplication des données

Rappels sur les suites - Algorithme

Introduction à la Programmation Parallèle: MPI

Programmes des classes préparatoires aux Grandes Ecoles

Les diagrammes de modélisation

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Cours de Base de Données Cours n.12

Outils logiciels SPC - une façon simple d optimiser les performances et la protection

Introduction. Le 21 ème siècle sera celui d Internet.


Cours Bases de données

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

AXES DE RECHERCHE - DOMAINE D'INTERET MAJEUR LOGICIELS ET SYSTEMES COMPLEXES

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

Résumé CONCEPTEUR, INTEGRATEUR, OPERATEUR DE SYSTEMES CRITIQUES

Système à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive. Version 1.0

Le programme d examens du Bureau canadien des conditions d admission en génie d Ingénieurs Canada englobe 19 domaines du génie.

SYSTÈME DE GESTION DE FICHIERS

Rapport de certification

Introduction à la programmation concurrente

Windows Internet Name Service (WINS)

LE SAN ET LE NAS : LE RESEAU AU SERVICE DES DONNEES

!-.!#- $'( 1&) &) (,' &*- %,!

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Plan présentation RATP

Modélisation des interfaces matériel/logiciel

Figure 1 : représentation des différents écarts

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

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

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Annexe 6. Notions d ordonnancement.

Introduction aux Systèmes et aux Réseaux

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

FICHE PRODUIT COREYE CACHE Architecture technique En bref Plateforme Clients Web Coreye Cache applicative Références Principe de fonctionnement

s é c u r i t é Conférence animée par Christophe Blanchot

Gestion Projet. Cours 3. Le cycle de vie

LIVRE BLANC. Mise en œuvre d un programme efficace de gestion des vulnérabilités

Eric Bertrand 08/11/06 Maître de conférence 1

Introduction au génie logiciel

Gestion hybride de la mémoire dynamique dans les systèmes Java temps-réel

ITIL V2. La gestion des incidents

Un concept multi-centre de données traditionnel basé sur le DNS

Transcription:

Contenu du cours Systèmes temps réels Fabien Calcado, Matthieu Lemerre CEA, LIST Email: prénom.nom@cea.fr Cours introduction EFREI 2012 1 Cours 1: Qu est ce que le temps réel? Cours 2: Parallélisme, communication et contrôle de la concurrence Rappels d architecture (notion de bus, interruption, atomicité, modèle von Neumann) Mécanismes de contrôle de la concurrence (sémaphores, spinlocks, instructions atomiques) Cours 3: Ordonnancement, analyse de faisabilité + fiabilité Algorithmes d ordonnancement Garanties et notion de faisabilité Cours introduction EFREI 2012 2011 2 Plan du cours Relations entre les E / S Un système de traitement de l information est appelé à remplir une mission : Mise en œuvre d un certain nombre de fonctions Suites d instruction codées (programme) Des informations codées et organisées Réalisation Nécessite la mise en œuvre de ressources matérielles HW => relativement figées Logiciels MW et SW spécifiques Cours introduction EFREI 2012 2011 3 Cours introduction EFREI 2012 4

Qualités des logiciels Efficaces réaliser les fonctions requises avec des performances adaptées Fiables Corrects, complets, sûrs Testables compréhensibles, lisibles, structurées, auto-descriptifs Portables sur différentes machines Maintenables corrections Réutilisables évolutions Certifiables prouver le bon comportement Cours introduction EFREI 2012 5 Cela implique: Une conception conforme à la mission du système Une réalisation conforme à la conception Faire une analyse des spécifications: Des méthodes et des règles Des techniques élémentaires Conception / programmation / mise en oeuvre Cours introduction EFREI 2012 6 Quelques chiffres: Le logiciel représente 70% à 80% du coût 50% du budget sont pour les tests et la maintenance 60% des erreurs sont dues à la conception 54% des erreurs sont détectées chez les clients Cours introduction EFREI 2012 7 L approche modulaire: Permet la division de la complexité d un problème Le partage du travail à réaliser Les méthodes pour la cohérence des modules: Cohérence logique répartition par classe de problème, matériel ou logiciel Cohérence temporelle synchronisation, enchaînement des traitements Cohérence procédurale organisation des algorithmes Cohérence par données communes approche objet Cohérence fonctionnelle 1 fonctionnalité donne 1 module Cours introduction EFREI 2012 8

Le modèle en V: Cours introduction EFREI 2012 9 Le modèle en V: Analyse des besoins Experts du domaine d application Environnement, rôle, ressources, contraintes Spécification globale Description de l action du logiciel, pas de décision sur la réalisation Conception architecturale détaillée Décomposition du logiciel, spécification des interfaces, description de la réalisation des composants Programmation ~15% de l activité Gestion de configuration et intégration Permettre l évolution des composants, assemblage Vérification et validation Adéquation aux besoins, satisfaction de la spécification Analyses, tests Cours introduction EFREI 2012 10 Plan du cours Système simple e S s Relations entre les E / S e : entrée du système S s = F(e) S : processus A priori, non temps-réel s : sortie du système S Analyse Structure de données, Algorithmes Etat 1 Programme Etat 2 Cours introduction EFREI 2012 11 Cours introduction EFREI 2012 12

Système classique (Multiple flots de données) Système temps-réel e i S s i (e i, t i ) S (s i, T i ) e i : entrée du système S s i = F(e i ) s i : sortie du système S s i = F(e i,e i-1,e i-2 ) = F(E i-1, e i ) Caractéristiques Non terminaison du système Cadencement évènementiel Les traitements et les E / S se succèdent et s entrelacent Le système peut attendre un évènement Les flots de données suivent des lois temporelles (e i, t i ) : évènements reçus par le système S (s i, T i ) : évènements émis par le système S i i s i = F(E i-1, e i, t i ) T i = G(E i-1, e i, t i ) Cours introduction EFREI 2012 13 Cours introduction EFREI 2012 14 Système temps-réel numérique Utilité temporelle normale: (e i, t i ) S (s i, T i ) Milieu continu milieu discontinu Les lois évènementielles sont discrétisées Conséquence de la numérisation E / S approximatives Calculs exacts (!) Applications directes: Traitement du signal, Filtrage non linéaire t Cours introduction EFREI 2012 15 Cours introduction EFREI 2012 16

Utilité temporelle dans le cas critique: Définition d un système temps réel: Un système temps réel est un système qui a la capacité de répondre à des évènements asynchrones issus du monde physique dans des délais prédéterminés Systèmes temps réel dur (Hard Real-Time System / Time Critical): Une contrainte non respectée est considérée comme une défaillance du système Entraîne un risque de dysfonctionnement, risque d incident Life Critical Real-Time System (safety-critical) Idem, mais incident -> accident - Attention: Un système temps réel n est pas un système rapide! Cours introduction EFREI 2012 17 Cours introduction EFREI 2012 18 Le caractère temps-réel d un système découle de ses spécifications. Les lois d arrivées des entrées doivent être strictement définies et connues. Les résultats fournis sont très souvent spécifiés de manières incomplètes: interactions sur les données communes utilités des résultats Deux systèmes ayant la même mise en œuvre Temps réel ou non vis-à-vis des spécifications Le terme temps-réel est souvent employé à tord et à travers! Exemple des systèmes intéractifs Systèmes simples pour lesquels la contrainte temps-réel peut être négligée. Exemple: messagerie électronique La réciproque est aussi vraie: par abus de langage, un système fondé sur des techniques courantes en temps-réel sera souvent dit temps-réel. Exemple: systèmes Multi-Utilisateurs Cours introduction EFREI 2012 19 Cours introduction EFREI 2012 20

Plan du cours Relation entre les E / S Systèmes de transmission Relations entre les E / S Peut être temps-réel Débits ou temps de réponse Fiabilité Disponibilité Cours introduction EFREI 2012 21 Cours introduction EFREI 2012 22 Relation entre les E / S Relation entre les E / S Systèmes d acquisition: Systèmes de contrôle commande: Le système physique impose le rythme d acquisition Les entrées se font en temps-réel Les sorties peuvent être temps-réel Le système physique impose ses lois de commande Les entrées et les sorties se font en temps-réel Le système est en boucle fermée Cours introduction EFREI 2012 23 Cours introduction EFREI 2012 24

Relation entre les E / S Relation entre les E / S Systèmes de contrôle commande multifonctions: Exemples Asservissements, alarmes, protections, communication inter-systèmes Plusieurs flots de contrôles (de données) Systèmes multitâches ou multithreads Un seul système global à prédire Synchronisation, communication Composition de flot multiple en un seul Produit synchronisé d automates Ordonnancement (statique ou dynamique) Note: modulaire n implique pas compositionnel! Cours introduction EFREI 2012 25 La notion de flot de contrôle multiple est liée: Aux acquisitions non synchrones (lois différentes) Aux différentes courbes d utilités Critère de priorités Utilité directe ou indirecte Importance de la fonction Conséquences: Préemption (interruption) de traitement long au profit de traitement plus court Entrelacement possible de plusieurs suites d instructions (problème de cohérence possible) Ou bien, éviter les arrivées asynchrones (difficile en pratique) Cours introduction EFREI 2012 26 Plan du cours Relations entre les E / S Cours introduction EFREI 2012 27 La préemption: gérer les différentes échelles de temps E1 E2 E : Evènements : traitement Avantages Grande souplesse Facile Optimisation possible Inconvénients Cohérence des données (entrelacement) Pertinence (violation d une contrainte essentielle) Partage des ressources (deadlock, famine) t Cours introduction EFREI 2012 28

La programmation en boucle Eviter le multitâche en adoptant une programmation en boucle Flot de contrôle statique Pas de préemption Avantages «Très simple» Garanties par le temps de cycle Inconvénients Rigide Pas optimal Peu performant Composition parallèle de programme P = P 1 * P 2 Connaissant P 1 et P 2, que peut-on dire de P? Caractériser les intéractions, explicites ou implicites: Cas asynchrone: produit possible ou non Cas synchrone: produit synchronisé d automate La programmation en boucle permet une composition rigide et simple, mais peu efficace Une interruption peut introduire une désynchronisation Cours introduction EFREI 2012 29 Cours introduction EFREI 2012 30 Plan du cours Relations entre les E / S Cours introduction EFREI 2012 31 Confiance des systèmes critiques est fondée sur quelques grands principes: Robustesse, tolérance aux fautes détection et confinement d anomalies, modes dégradés, etc... Maîtrise des mécanismes mis en œuvre exemple: problèmes des logiciels à interruption Déterminisme comportemental reproductibilité des tests et essais: les mêmes causes impliquent les mêmes effets Application du principe de diversification prévenir les pannes de cause commune (redondance ou diversité fonctionnelle, etc..) Défense en profondeur Cours introduction EFREI 2012 32

Reproductibilité et tests Les défauts logiciels systématiques Les défaillances dues aux logiciels systématiques (e.g. division par zéro) non systématiques (e.g. synchronisation et non cohérence des données) Difficulté majeure pour la sûreté de fonctionnement Les approches statistiques sont inadaptées pour le logiciel Dès que la probabilité de défaillance admissible du système est très basse Le logiciel n a pas de fiabilité quantifiable Objectifs pour la sûreté de fonctionnement des systèmes à logiciel prépondérant comportements du système prédictible tests du systèmes reproductibles Construction du déterminisme Cours introduction EFREI 2012 33 Tests et déterminisme Système non déterministe Une petite variation des entrées (incontournable) entraîne une grande variation du comportement tests successifs peuvent donner des résultats différents tests et système final peuvent donner des résultats différents Le test a peu de valeur pour la validation du système Il faut agir en amont pour assurer structurellement le déterminisme Cours introduction EFREI 2012 34 Activités à exécuter sur des calculateurs: Acquérir les données décrivant le procédé et l environnement (entrées) Traiter ces données (algorithmes) Commander des actionneurs (sorties) Contraintes temporelles spécifiées (explicites ou non): Rythmes: Tstart = T0,T1,T2... Intervalles temporels de validité pour les activités élémentaires: Tstart < AE < Tend Dépendances entre les activités (relations d ordres, sections critiques) Coordination de toutes les activités: Cohérence temporelle: synchronisations sur le temps physique (temps réel) Branchements conditionnels : synchronisations logiques Problèmes: De quelques centaines à quelques milliers d activités élémentaires à coordonner La coordination déterministe de toutes les activités est difficile Cours introduction EFREI 2012 35 Modèle d exécution séquentiel découpage statique, ex: programmation en boucle Avantage déterministe Inconvénients contraintes très fortes sur la réalisation (réalistes?) Ne profite pas des architectures multiprocesseur Modèle d exécution parallèle Découpage dynamique, préemptions Problème Vérifications analytiques possibles? Cours introduction EFREI 2012 36

Le déterminisme idéal Déterminisme logique et temporels sont indissociables unicité et invariance du comportement dynamique asynchronismes du système maîtrisés Impact du déterminisme comportement dynamique du système prédictible et invariant:» reproductibilité du comportement dynamique tests (vérification/validation pour la sûreté) :» exhaustivité des comportements atteignable (recherche du pire des cas) indépendance de l implantation simulation exacte sans la machine cible Empêcher les propagations d erreurs et maîtriser l impact des anomalies mécanismes déterministes de détection et de confinement d anomalies L impact d une anomalie de fonctionnement doit (devrait) être déterministe Cours introduction EFREI 2012 37 Plan du cours Relations entre les E / S Cours introduction EFREI 2012 38 Pourquoi? Les problèmes dans les systèmes temps-réels ne sont pas dû au parallélisme mais aux intéractions entre les programmes se déroulant en parallèle Cause de non déterminisme Intéractions entre les programmes Partage des ressources Garantir que l exécution en parallèle de plusieurs processus fournit le même résultat qu une exécution strictement séquentielle Communication, coopération Garantir que l échange d information entre les programmes obéit à un protocole défini Cours introduction EFREI 2012 39 Exemple de mise à jour de comptes bancaires: (4) (1) (2) (3) Problème si on exécute: Val = 5, debiteur(6), crediteur(4) Séquence: (1), (4), (2), (3)... découvert signalé! (val = 3) Problème si on exécute: Val = 5, debiteur(4) en // debiteur(3) Séquence: (1), (1), (3), (3). aucun découvert signalé! (val = -2) Cours introduction EFREI 2012 40

Une solution pour le problème de l exclusion mutuelle vérifie les propriétés suivante: Indépendante de la vitesse d exécution des programmes Deux processus (ou plus) ne peuvent se trouver simultanément en section critique Un processus hors de sa section critique et qui ne demande pas à y entrer ne doit empêcher un autre processus d entrer en section critique Deux processus ne doivent pas s empêcher mutuellement et indéfiniment d entrer en section critique Phénomène d Interblocage Un processus doit toujours entrer en section critique au bout d un temps fini Phénomène de famine Cours introduction EFREI 2012 41 Sémaphore: Un sémaphore est un objet sur lequel seulement 2 opérations atomiques sont possibles P(sem) : décrémentation de la valeur du sémaphore «sem»» Blocage si la valeur est < 0 (barrière) V(sem) : incrémentation de la valeur du sémaphore «sem»» Permet de débloquer un processus bloqué par P (laissez-passer) Note : Vient du Hollandais Passeren (prendre), Vrygeven (libérer) Cours introduction EFREI 2012 42 Sémaphore d exclusion mutuelle (mutex): Sémaphore binaire initialisé à 1 Sert à protéger une section critique Permet d assurer l accès à des ensembles disjoints de variables partagées Associer un sémaphore d exclusion mutuelle à chaque ensemble Autre exemple d utilisation du sémaphore: Un processus doit être activé par un autre sur un évènement (sémaphore privé) Un seul processus peut exécuter l opération P Les autres processus peuvent exécuter l opération V Processus réveilleur 1 Processus réveilleur 2 Processus à activer Cours introduction EFREI 2012 43 Cours introduction EFREI 2012 44

Mutex POSIX: Sémaphores généraux: Utilisés comme compteurs de ressources N est pas limité à 0 ou 1 contrairement au sémaphore d exclusion mutuelle Valeurs du sémaphore Initiale représente le nombre de ressources maximum Courante le nombre de ressources disponibles L opération P permet d acquérir une ressource Bloqué si aucune ressource n est disponible L opération V permet de libérer une ressource Signale la disponibilité d une ressource et débloque un processus éventuellement en attente Cours introduction EFREI 2012 45 Cours introduction EFREI 2012 46 Exemple du Pool d imprimantes: Valeur initiale du sémaphore (?) Les M processus utilisateurs font des P( ) Le gestionnaire fait des V( ) pour libérer une ressource Imprimante 1 Imprimante N Gestionnaire d imprimantes Utilisateur 1 Utilisateur M Cours introduction EFREI 2012 47 Producteur / Consommateur: Le système possède N emplacements pour stocker de l information Les processus producteurs produisent de l information vers ces emplacements Les processus consommateurs utilisent l information et libère l emplacement correspondant Un sémaphore est nécessaire pour synchroniser les deux types de processus Bloquer un producteur s il n y a plus de place Bloquer un consommateur s il n y a plus d information disponible Cours introduction EFREI 2012 48

Exemple d un tampon de Lecture / Ecriture : Processus E écrit des données dans le buffer Processus L lit les données dans le buffer Valeurs initiales des sémaphores Lib=N, Occ=0 Cas de plusieurs lecteurs / écrivains Problème d exclusion mutuelle Sémaphore POSIX: Processus E P(Lib) Ecrit V(Occ) N cases Processus L P(Occ) Lire V(Lib) Cours introduction EFREI 2012 49 Cours introduction EFREI 2012 50