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