Introduction
Transcription
Introduction
Approche synchrone Pascal Raymond Verimag-CNRS 2 Domaine : Systèmes embarqués réactifs Généralités • Interaction permanente avec leur environnement 6= tranformationnels (e.g. compilateurs) • Contraintes de temps de réponse 6= interactif (e.g. IHM, browser etc) L’environnement est (en partie) le monde physique • Ressouces limitées (mémoires, puissance de calcul etc) Exemple • Contrôle/commande, embarqué dans les transports (critiques) • De plus en plus : partout ! (téléphonie, appareils ménagers etc) Domaine : Systèmes embarqués réactifs Exemple 3 Fonctionnement schématique capteurs opérateur Système réactif (hard+soft+OS) actionneurs autres S.R. • Environnement : interface avec le monde physique, opérateur humain, autres sytèmes réactifs... • Le “programme” : un logiciel particulier, sur un système d’exploitation et une architecture particuliers ... Beaucoup de problèmes ! ⇒ On se concentre sur la fonctionnalité du système Domaine : Systèmes embarqués réactifs Fonctionnement schématique 4 Exécution d’un système réactif Entrées Réaction du système Sorties Réaction de l’environnement • Entrées/sorties “informatiques” (booléens, entiers, flotants ...) • Exécution = séquence de réactions E0 E1 E2 E3 temps S0 Exécution d’un système réactif S1 S2 S3 Fonctionnement schématique 5 Temps-réel ? E0 E1 E2 E3 temps S0 S1 S2 S3 • les E et les S alternent dans le temps • i.e., le programme répond à Ei avant que n’arrive Ei+1 • i.e., le programme ne rate aucun changement significatif Exécution d’un système réactif Temps-réel ? 6 Temps-réel et fonctionnalité • fonctionnalité : le programme calcule les bonnes sorties dépend essentiellement de la conception • temps-réel : le programme calcule assez vite Dépend aussi de l’architecture matérielle. Relatif à l’environnement considéré : ? Quelques dizièmes de seconde pour un humain. ? Quelques millièmes de seconde pour certains processus physiques. ? N.B. Les conraintes temps-réel sont fournies par un spécialiste du domaine. Exécution d’un système réactif Temps-réel et fonctionnalité 7 Fonctionnalité On s’intéresse essentiellement à la fonctionnalité (et donc au soft) Déterminisme • Une séquence d’entrées donnée produit toujours la même séquence de sorties • Conséquence immédiate : Si est parfaitement déterminée par la séquence E1 , E2 , ..., Ei • i.e. ∀i Si = φ(E1 , E2 , ..., Ei ) Contrainte supplémentaire : mémoire bornée • ∃M0 , g Si = f (Mi , Ei ) Mi+1 = g(Mi , Ei ) Fonctionnalité Contrainte supplémentaire : mémoire bornée 8 Réalisation d’un programme réactif simple Identifier ... • Les entrées E , les sorties S • La mémoire interne nécessaire M , avec sa valeur initiale M0 Définir ... • La fonction de sortie Si = f (Mi , Ei ) • La fonction de transition Mi+1 = g(Mi , Ei ) • N.B. identique aux circuits dit séquentiels. Puis implémenter le tout par un programme Réalisation d’un programme réactif simple Définir ... 9 Implémentation simple : “event-driven” Système(E, S) mémoire M M := M0 boucle attendre(E) S = f(M, E) M = g(M, E) écrire(S) fin boucle f E S M g Temps-réel ? temps de calcul < temps de réaction de l’environnement Réalisation d’un programme réactif simple Implémentation simple : “event-driven” 10 Implémentation (encore plus) simple : échantillonnage Système(E, S) mémoire M M := M0 à chaque période faire lire(E) S = f(M, E) M = g(M, E) écrire(S) fin Temps-réel ? temps de calcul < période et période ad hoc pour un environnement connu Réalisation d’un programme réactif simple Implémentation (encore plus) simple : échantillonn 11 Système réactif complexe Découper le problème • Gros système : beaucoup d’entrées/sorties • Conception “mono-bloc” impossible • Solution classique : conception parallèle et hiérarchique S1a S2 S1 S1b S3 environnement Fonctionnement attendu : chaque sous-système se comporte localement comme un système “temps-réel” Système réactif complexe Découper le problème 12 Parallélisme de description • Le parallélisme peut être imposé (système réparti), • ou seulement “logique” (parallélisme de description) i.e., l’architecture est centralisée Implémentation par processus concurrents Le parallélisme de description devient parallélisme d’exécution : • Un “processus” par sous-système • Communication/ordonnancement réalisés par l’exécutif ? Primitives systèmes (OS temps-réel) ? Primitives du langage (langages multi-tâches, par ex ADA) ⇒ Problème : fonctionnement global “imprévisible” Système réactif complexe Implémentation par processus concurrents 13 Problèmes liés à l’implémentation multi-tâches L’ordonnancement dynamique est par nature non-prévisible : • Les temps de calculs sont difficiles (impossibles) à cerner • L’ordre des communications est difficile à maı̂triser : On peut l’influencer (priorités, communications bloquantes), mais ça reste très “artisanal” : ? difficulté de mise au point (inversion de priorité) ? risque de blocage, ? temps de réaction toujours (sinon plus) imprévisibles. En bref : ⇒ indéterminisme ⇒ ne respecte pas le critère temps-réel Système réactif complexe Problèmes liés à l’implémentation multi-tâches 14 Approche synchrone Concilier les avantages • d’une conception modulaire et parallèle • du déterminisme et de l’aspect temps-réel de l’implémentation mono-bloc f E S E Compilateur Approche synchrone S M g Concilier les avantages 15 Hypothèse de synchronisme Idéalement (conception) • Communication non bloquante en temps nul (diffusion synchrone) • Réaction en temps nul • Composition triviale : 0 + 0 = 0 (modularité “idéale”) • En particulier, les sorties sont simultanées aux entrées • D’où un temps logique discret (le rythme des entrées) E0 E1 E2 E3 temps logique discret S0 S1 Hypothèse de synchronisme S2 S3 Idéalement (conception) 16 Concrètement (exécutable) Réaction simple (pas d’itération non bornée) et mémoire bornée : ⇒ il existe une borne au temps de réaction (wcet) ⇒ évaluable pour un couple soft/hard donné ∆0 δ0 ∆1 δ1 ∆2 δ2 δ3 temps • soit δmax un majorant des δi (pour l’implémentation considérée), • soit ∆min un minorant des ∆i (cf. le spécialiste du domaine) • l’hypothèse synchrone est valide si δmax < ∆min Hypothèse de synchronisme Concrètement (exécutable) 17 Quoi de neuf ? Classique dans le domaine des circuits • Circuit séquentiels (i.e. clockés, avec portes et registres) • Machine de Mealy (automates) synchrones communicants particulièrement adapté à la conception de la partie contrôle • N.B. On reste dans le monde synchrone jusqu’à l’implémentation (placement/routage). Mais aussi en automatique • Équations aux différences finies, réseaux analogiques • Schémas à relais, schémas ladder, grafcet Moins classique dans le logiciel Quoi de neuf ? Mais aussi en automatique 18 Les langages synchrones Approches • étendre des langages existants (reactive-C, Jester, sugar-cube, reactive-ml) • définir de nouveaux langages ad hoc (c’est ce qu’on va étudier) Principes communs • Synchronisme (temps discret) • Langage “bridés” (pas d’allocation dynamique ni d’itération non bornée) • Parallélisme de description • Compilation vers du code séquentiel simple Les langages synchrones Principes communs 19 Différents styles • Flot de données déclaratif : ? textuel (Lustre, Signal, Lucid-Synchrone), ou graphique (Scade) ? style de programmation inspiré des “block-diagrams” • Impératif séquentiel : ? textuel (Esterel, SL), ou graphique (SynchCharts) ? style de programmation inspiré des systèmes de transitions (machines de Moore/Mealy) Les langages synchrones Différents styles 20 Diffusion des langages synchrones • Au niveau R&D, un peu partout où on fait de l’embarqué (avionique, nucléaire, automobile, ascenceur, téléphonie, etc) • En opérationnel, dans les domaines (très) critiques : ? Avionique (Airbus, Dassault, Eurocopter) ? Centrales nucléaires (Schneider Electric, EdF) ? Circuits (TI) Les langages synchrones Diffusion des langages synchrones