Chapitre 5 Approches synchrones Langage Esterel - PowerPoint PPT Presentation

1 / 62
About This Presentation
Title:

Chapitre 5 Approches synchrones Langage Esterel

Description:

... le syst me consid re que c'est une situation non souhait e (signal ALARME) ... top, le syst me consid re que c'est une situation non souhait e (signal ALARME) ... – PowerPoint PPT presentation

Number of Views:171
Avg rating:3.0/5.0
Slides: 63
Provided by: simon192
Category:

less

Transcript and Presenter's Notes

Title: Chapitre 5 Approches synchrones Langage Esterel


1
Chapitre 5Approches synchronesLangage Esterel
Ingénieur Civil des Mines 2ème
année Architecture des Systèmes Sûrs Module
SI144
  • Documents complémentaires
  • Synchronous Programming of Reactive Systems,
    Nicolas Halbwachs, Kluwer Academic Pub.,
    Amsterdam, 1993.
  • The Esterel v5 Language Primer, Gérard Berry
    http//www.inria.fr/meije/esterel
  • 2008 2009
  • Françoise Simonot-Lion (simonot_at_loria.fr)

2
Documents complémentaires
  • Synchronous Programming of Reactive Systems,
    Nicolas Halbwachs, Kluwer Academic Pub.,
    Amsterdam, 1993.
  • The Esterel v5 Language Primer, Gérard Berry
  • Quelques sites
  • http//www-sop.inria.fr/esterel.org/home.htm
  • http//www.i3s.unice.fr/sports/SyncCharts/

3
Problématique (1/3)
  • Systèmes transformationnels
  • Systèmes interactifs
  • Systèmes réactifs

while (true)
Systèmes interactifs toujours prêts à traiter
de nouvelles entrées
4
Problématique (2/3)Une solution les machines
détats finis
  • Déterminisme
  • les sorties du système sont déterminées
    formellement par
  • les valeurs et les instants doccurrence des
    entrées
  • létat du système
  • - Difficulté de conception, de réutilisation et
    de modification
  • Pas dexpression directe du parallélisme
  • Technique monolithique
  • Pas de modularité, pas de hiérarchie

5
Problèmatique (3/3)Autre solution modèle à
base de tâches ou de processus communicants
Exemple (Ada) une tâche A signale l événement
 MINUTE  à une tâche B au bout de 60 secondes à
partir de son début.
facile à programmer / modifier - au bon
vouloir de l ordonnanceur  au moins 60
secondes  - B doit être  prêt  à accepter le
rendez-vous - pas de diffusion (  MINUTE 
signalé à une tâche C ?) Indéterminisme /
Surcoût pour la gestion des tâches ( overhead )
6
Une solution les langages synchrones

Objectif fournir des primitives de
programmation permettant de décrire lautomate de
réaction du système.
  • Il existe un opérateur de parallélisme
  • La communication se fait par événements diffusés
  • Le langage permet de spécifier le contrôle de
    manière non ambiguë
  • La compilation dun programme synchrone fournit
    lautomate et vérifie des propriétés sur le
    contrôle

7
Les langages synchrones - principes (1/5)
  • Instants dexécution, réaction, temps discret
  • Le comportement du système est une suite d
     instants dexécution  non entrelacés
  • La réaction est de durée nulle (hypothèse de
    synchronisme)
  • La même suite dentrées produit la même suite de
    sortie (déterminisme)
  • Pas de création dynamique (preuves et validation
    formelle)

8
Les langages synchrones - principes (2/5)
Le train doit sarrêter en moins de 10 secondes
Evénements arrêt, seconde Loccurrence de
lévénement arrêt doit précéder la 10ème
occurrence de lévénement seconde Le train doit
sarrêter en moins de 100 mètres
Evénements arrêt, mètre Loccurrence de
lévénement arrêt doit précéder la 100ème
occurrence de lévénement mètre
9
Les langages synchrones - principes (3/5)Un
exemple
  • Un système dacquittement
  • Entre deux tops (signal TOP) à la réception de
    la première demande (signal REQ), le système
    acquitte la demande (signal ACQ) à la réception
    des demandes suivantes, il signale que cest
    occupé (signal OQP)
  • Si entre deux tops, il ny a pas de demande, le
    système considère que cest une situation non
    souhaitée (signal ALARME)
  • Si une demande arrive en même temps quun top, le
    système considère que cest une situation non
    souhaitée (signal ALARME)
  • Linitialisation du système est considérée comme
    le premier top

10
Les langages synchrones - principes (4/5)Un
exemple / suite
11
Les langages synchrones - principes (5/5)
  • Instant logique occurrence de 1 ou plusieurs
    événements (tick)
  • Histoire dun système succession totalement
    ordonnée dinstants logiques
  • Entre 2 instants logiques, rien ne se passe dans
    le système ou dans lenvironnement
  • État
  • Toute composante du système (module,
     processus ) a la même perception des
    occurrences dévénements
  • Diffusion
  • Hypothèse de synchronisme on suppose que le
    système réagit assez vite entre deux instants
    logiques successifs (instant dexécution)

12
Les langages synchrones disponibles
Outils ? XES simulateur ? XEVE vérifieur
LUSTRE (P. Caspi, N. Halbwachs) SIGNAL (A.
Benveniste, P. Le Guernic) ESTEREL (G.
Berry) STATECHARTS (D. Harel, A. Pnueli) / ARGOS
(F. Maraninchini) SYNCCHARTS (C.
André) syntaxe graphique
Flots de données Langages déclaratifs
Langages impératifs
13
Langage Esterel - syntaxe et sémantiqueIntroducti
on (1/4)
communication avec l environnement signaux
dentrée (valués ou non) signaux de sortie
(valués ou non) capteurs (valués)
Exemple système embarqué dans un train et
chargé de la  surveillance  du déplacement du
train
Sorties des signaux de commande vers
les moteurs des signaux de commande vers les
freins des signaux vers les postes de contrôle
Entrées un signal tous les mètres un signal
tous les tours de roue des signaux (informations)
issus de la voie des signaux (informations) issus
du poste daiguillage des signaux (informations)
issus du poste de pilotage des valeurs issues de
capteurs de température
Signaux locaux
Chaque signal est vu comme une  horloge 
14
Langage Esterel - syntaxe et sémantiqueIntroducti
on (2/4)
  • Loccurrence dun signal d entrée est la seule
    cause de réaction dun programme (éventuellement
    émission de signaux de sortie)
  • Un signal peut être valué
  • Diffusion dun signal (toutes les composantes
    incluses dans la portée syntaxique)
  • Le contrôle ne prend aucun temps loccurrence
    de signaux dentrée peut provoquer
    instantanément des signaux de sortie

15
Langage Esterel - syntaxe et sémantiqueIntroducti
on (3/4)
Exemple de programme Esterel module
progreact1 input seconde output
minute every 60 seconde do emit
minute end every end module
Un programme Esterel est compilé dans un langage
hôte (par exemple le langage C)
16
Langage Esterel - syntaxe et sémantique Introducti
on (4/4)
Evénement ensemble doccurrences simultanées
de signaux Histoire suite dévénements Exempl
e un compteur de vitesse signaux dentrée non
valués seconde, metre signal de sortie valué
vitesse (vitesse en m/s) - émis à chaque
seconde Exemple dhistoire (metre)
(metre) (metre) (seconde,
vitesse(3)) (metre) (metre, seconde ,
vitesse(2)) (seconde , vitesse(0))
17
Langage Esterel syntaxe et sémantiqueStructure
dun programme
  • Programme suite de modules
  • Structure dun module (mots clés en rouge)

module nom_du_module partie déclaration
(objets dinterface) . . . corps du programme
(instructions) . . . end module
18
Langage Esterel syntaxe et sémantiqueInstructio
ns réactives primitives (1/10)
  • séquence
  • instruction1instruction2
  • Le début de linstruction est simultané au début
    de instruction1
  • Le début de instruction2 est simultané à la fin
    de instruction1
  • La fin de linstruction est simultanée à la fin
    de instruction2
  • parallélisme
  • instruction1instruction2
  • Le début de instruction2 est simultané au début
    de instruction1 (début de linstruction
    parallèle)
  • La fin de linstruction parallèle est simultanée
    à la fin la plus tardive de instruction1 ou
    instruction2

19
Langage Esterel syntaxe et sémantiqueInstructio
ns réactives primitives (2/10)
  • nothing ne fait rien en temps nul
  • pause un instant
  • Suspend lexécution jusquau prochain instant
  • loop end boucle infinie
  • loop instruction end
  • Répète instruction en séquence un nombre infini
    de fois
  • repeat times end boucle finie
  • repeat 5 times instruction end
  • Répète instruction en séquence 5 fois

20
Langage Esterel syntaxe et sémantiqueInstructio
ns réactives primitives (3/10)
Portée syntaxique du signal
  • module unmodule end module déclaration dun
    module de nom unmodule
  • input déclaration dun signal dentrée local
    au module
  • output déclaration dun signal de sortie
    local au module
  • signal in instruction end déclaration de
    signal local à instruction

21
Langage Esterel syntaxe et sémantiqueInstructio
ns réactives primitives (4/10)
Instructions portant sur un signal
  • await attend loccurrence dun signal dentrée
  • await S
  • Linstruction sarrête à la 1ère occurrence du
    signal dentrée S
  • emit émet un signal de sortie
  • emit S
  • Linstruction émet le signal S instantanément
  • present then else end instruction
    conditionnée à la présence dun signal
  • present S then instruction1 else instruction2 end
  • Si au début de linstruction, le signal S est
    présent, alors exécution de instruction1 sinon
    exécution de instruction2

22
Langage Esterel syntaxe et sémantiqueInstructio
ns réactives primitives (5/10)
Délai immédiat / non immédiat
  • await S
  • emit T
  • await immediate S
  • emit T

S
T
S
S
T
23
Langage Esterel syntaxe et sémantiqueInstructio
ns réactives primitives (6/10)
Délai dépendant de plusieurs signaux
  • await
  • case S1 do intruction1
  • case immediate S2 do intruction2
  • case S3 do intruction3
  • end await
  • Si S2 est présent au début de l instruction,
    elle termine à la fin de instruction2.
  • Sinon, linstruction se termine à la fin de
    instruction1 (respectivement instruction2,
    instruction3) si le signal S1 arrive en premier
    (respectivement S2, S3 ).
  • Si Si et Sj arrivent en même temps, seul le
    premier de la liste est pris en compte.

24
Langage Esterel syntaxe et sémantiqueInstructio
ns réactives primitives (7/10)
Préemption forte
  • abort when do end préemption forte
  • abort instruction1 when S do instruction2 end
  • Linstruction instruction1 est préemptée à
    loccurrence du signal S (linstruction
    instruction2 est alors exécutée)

Partie optionnelle
abort loop emit S pause end loop when T do
emit U end
S
T
U
S
25
Langage Esterel syntaxe et sémantiqueInstructio
ns réactives primitives (8/10)
Préemption faible
  • abort when do end préemption faible
  • weak abort instruction1 when S do instruction2
    end
  • Linstruction instruction1 est préemptée à la fin
    de son exécution à loccurrence du signal S
    (linstruction instruction2 est alors exécutée)

Partie optionnelle
weak abort loop emit S pause end loop when T do
emit U end
U S
S
T
S
26
Langage Esterel syntaxe et sémantiqueInstructio
ns réactives primitives (9/10)
Immédiate / non immédiate préemption forte
  • abort when do end
  • abort when immediate do end

abort loop emit Spause end loop when T do emit
Uend
T
U
T
S
abort loop emit Spause end loop when immediate
T do emit Uend
T
U
27
Langage Esterel syntaxe et sémantiqueInstructio
ns réactives primitives (10/10)
Immédiate / non immédiate préemption faible
  • weak abort when do end
  • weak abort when immediate do end

S U
weak abort loop emit Spause end loop when T do
emit Uend
T
T
S
S U
weak abort loop emit Spause end loop when
immediate T do emit Uend
T
28
Langage Esterel syntaxe et sémantiqueInstructio
ns dérivées (1/5)
  • halt instruction vide de durée infinie
  • équivalente à
  • loop
  • pause
  • end
  • sustain S maintien dun signal jusquau prochain
    instant
  • équivalente à
  • loop
  • emit S
  • pause
  • end

29
Langage Esterel syntaxe et sémantiqueInstructio
ns dérivées (2/5)
  • every S do end répétition
  • équivalente à
  • await S
  • loop
  • abort
  • when S
  • end
  • do upto S
  • équivalente à
  • abort
  • halt
  • when S

30
Langage Esterel syntaxe et sémantiqueInstructio
ns dérivées (3/5)
  • trap T in handle T do end trap gestion
    dexception
  • exit T
  • trap T in
  • instruction1
  • end trap
  • Début de instruction1 simultané au début de
    linstruction trap.
  • Fin de linstruction trap
  • si instruction1 termine, alors linstruction trap
    termine,
  • si une instruction exit T est exécutée avant la
    fin de instruction1, alors linstruction trap
    termine (préemption faible de instruction1)

Partie optionnelle
31
Langage Esterel syntaxe et sémantiqueInstructio
ns dérivées (4/5)
  • trap T in
  • instruction1 exit T
  • await S exit T
  • end trap
  • équivalente à
  • abort
  • instruction1
  • when S

32
Langage Esterel syntaxe et sémantiqueInstructio
ns dérivées (5/5)
Imbrication de gestion dexceptions
  • trap U in
  • trap T in
  • instruction1
  • end trap
  • instruction2
  • end trap
  • instruction3
  • Si instruction1 termine T (exit T), alors
    instruction2 démarre immédiatement.
  • Si instruction1 termine U (exit U), alors
    instruction3 démarre immédiatement.
  • Si instruction1 termine simultanément T et U,
    alors seulement instruction3 démarre
    immédiatement.

33
Langage Esterel syntaxe et sémantiqueEsterel /
langage hôte
  • Compilation dun programme Esterel
  • Génération de programme dans un langage  hôte 
  • langage C
  • VHDL
  • Ada)
  • Deux points de vue
  • Le contrôle pur (sémantique Esterel voir
    transparents précédents)
  • Les données (types et opérateurs disponibles dans
    le langage hôte) et les fonctions daccès à ces
    données

34
Langage Esterel syntaxe et sémantiqueObjets
dinterface (1/12)
  • Interface objets importés ou exportés

Signaux et capteurs
Données
35
Langage Esterel syntaxe et sémantiqueObjets
dinterface (2/12)
Types de données
  • Types prédéfinis
  • boolean integer float double string
  • false 123 5.76  hello 
  • true 12.8E-4
  • Opérateurs habituels du langage C

36
Langage Esterel syntaxe et sémantiqueObjets
dinterface (3/12)
Types de données
  • Types définis dans le langage hôte (langage C,
    VHDL, Ada)
  • type T
  • Le type T doit être défini dans le langage hôte
  • typedef struct T
  • Laffectation () et les opérateurs de
    comparaison ( et ltgt), utilisés dans les modules
    Esterel, doivent être définis dans les modules
    écrits dans le langage hôte

37
Langage Esterel syntaxe et sémantiqueObjets
dinterface (4/12)
Données
  • Constantes
  • De type prédéfini
  • constant L123 integer
  • Dun type défini dans le langage hôte
  • type T
  • constant valeur_constante T
  • valeur_constante doit être définie et valuée
    dans le langage hôte
  • valeur_constante

38
Langage Esterel syntaxe et sémantiqueObjets
dinterface (5/12)
Données
  • Variables
  • Définition de la portée dune variable
  • var Ltype in
  • instruction
  • end var
  • var L valeur_initiale type in
  • instruction
  • end var

39
Langage Esterel syntaxe et sémantiqueObjets
dinterface (6/12)
Fonctions et procédures
  • Fonctions
  • Déclaration dune fonction en Esterel
  • function pgcd(integer,integer) integer
  • Appel dune fonction en Esterel
  • var plusgranddiviseur integer in
  • plusgranddiviseur pgcd(a,b)
  • end var
  • Définition de la fonction dans le langage hôte
  • int pgcd(int x, int y)

Type du résultat
Liste des types de données
40
Langage Esterel syntaxe et sémantiqueObjets
dinterface (7/12)
Fonctions et procédures
  • Procédures
  • Déclaration dune procédure en Esterel
  • procedure inc_heure(heure)(integer)
  • Appel dune procedure en Esterel
  • var h midi heure in
  • inc_heure(h)(1)
  • end var
  • Définition de la fonction dans le langage hôte
  • void inc_heure(heure x, int y)

Liste des types de résultats
Liste des types de données
41
Langage Esterel syntaxe et sémantiqueObjets
dinterface (8/12)
Signaux et capteurs
  • Signaux
  • input A,B, C A, B et C sont 3 signaux
    dentrée
  • input Xinteger X signal dentrée valué par
    un entier
  • output heure midi time heure signal de
    sortie
  • valué par la valeur midi
  • Capteurs
  • sensor tinteger t est un capteur à valeur
    entière

42
Langage Esterel syntaxe et sémantiqueObjets
dinterface (9/12)
Signaux et capteurs
  • Relations sur les signaux dentrée
  • Supposées être garanties par lenvironnement
  • Évitent la spécification de comportements non
    pertinents
  • Optimisent la génération de code (minimisation de
    lautomate)
  • relation ABC A, B et C jamais ensemble
  • relation AgtX si A est présent, alors X est
    présent

43
Langage Esterel syntaxe et sémantiqueObjets
dinterface (10/12)
Signaux et capteurs
  • Occurrence dun signal dentrée versus valeur
  • input Ainteger
  • await A attend loccurrence de A
  • var x ?A integer in
  • end var
  • Valeur dun capteur
  • ?S valeur du capteur S

44
Langage Esterel syntaxe et sémantiqueObjets
dinterface (11/12)
Signaux et capteurs
  • Émission dun signal de sortie valué
  • output Sinteger
  • var x 5 integer in
  • emit S(x)
  • end var

45
Langage Esterel syntaxe et sémantiqueObjets
dinterface (12/12)
Expressions sur les signaux
  • Expressions booléennes sur les signaux dentrée
  • A and not B
  • B and C or not (A and X)
  • Expressions  délai  sur les signaux dentrée
  • A
  • A and not B
  • immediate A and not B
  • 3 time

46
Langage Esterel syntaxe et sémantiqueInstructio
n conditionnelle
  • Instruction  if 
  • if expression then instruction1
  • else instruction2
  • end if
  • if expression1 then instruction1
  • elsif expression2 then instruction2
  • else instruction3
  • end if

47
Langage Esterel syntaxe et sémantiqueInstanciat
ion de modules (1/4)
  • Instruction run
  • module B module A
  • run A1/A end module
  • end module
  • Insère le contenu du module A (fils) à
    lintérieur du module B (père) instanciation de
    A sous le nom A1
  • Pas de récursivité
  • Les déclarations de données de A sont exportées
    dans B
  • Les déclarations de signaux dinterface (et les
    déclarations de relations) du module fils sont
    supprimées ? ces signaux doivent être déclarés
    dans le module père

48
Langage Esterel syntaxe et sémantiqueInstanciat
ion de modules (2/4)
  • Renommage
  • signal nom_dans_module_père /
    nom_dans_module_fils,
  • constant nom_dans_module_père /
    nom_dans_module_fils,
  • function nom_dans_module_père /
    nom_dans_module_fils,
  • Uniquement pour
  • Constantes explicites, types
  • Fonctions, procédures
  • Signaux dinterface
  • Tâches
  • nom_dans_module_père et nom_dans_module_fils
    doivent être déclarés de la même manière dans les
    deux modules

49
Langage Esterel syntaxe et sémantiqueInstanciat
ion de modules (3/4)
  • Exemple
  • Définition du module A
  • module A
  • input I
  • type T
  • constant initialT
  • function somme(T,T)T
  • end module

50
Langage Esterel syntaxe et sémantiqueInstanciat
ion de modules (4/4)
  • Exemple
  • Instanciation du module A
  • module B
  • input E1,E2
  • type time
  • constant midi
  • function ajouter_heure(time,time)time
  • instanciation sur des entiers et le signal
    E1
  • run A1 / Asignal E1/I instanciation sur
    integer
  • type integer/T et le signal E1
  • constant 1/initial
  • function /somme
  • run A2 / Asignal E2/I instanciation sur un
    type time type time/T et le signal E2
  • constant midi/initial
  • function ajouter_heure/somme
  • end module

51
Langage Esterel syntaxe et sémantiqueTâches
(1/5)
  • Tâche entité dont lexécution est externe au
    module réactif et qui  prend du temps 
  • Instant de début de la tâche instant
    dexécution de linstruction exec (activation)
  • Fin de la tâche instant démission dun signal
    dédié par linstruction return
  • Lancement et signalisation de fin de tâches
    relèvent du système dexploitation sous-jacent
  • Contrôle de la tâche (abort ou weak abort)

52
Langage Esterel syntaxe et sémantiqueTâches
(2/5)
  • Déclaration de tâches
  • task unetache (type_de_variable,)(type_d_express
    ion,)
  • Signal de retour dune tâche
  • return nomsignal
  • Permet de déclarer le signal retourné en fin
    dexécution de la tâche
  • Exemple
  • module M
  • task T(float)(integer,integer)
  • return R
  • end module

cf. déclaration de procédures
53
Langage Esterel syntaxe et sémantiqueTâches
(3/5)
  • Lancement dexécution de tâches
  • exec unetache (nom_de_variable,)(expression,)
  • Exemple
  • module M
  • task T(float)(integer,integer)
  • return R
  • var x float in
  • exec T(x)(0,1) return R
  • end var
  • end module

cf. appel de procédures
54
Langage Esterel syntaxe et sémantiqueTâches
(4/5)
  • Variantes
  • exec T ()() return R do instruction end exec
  • exec
  • case T1 ()() return R1 do instr1
  • case T2 ()() return R2 do instr2
  • case Tn ()() return Rn do instrn
  • end exec

55
Langage Esterel syntaxe et sémantiqueTâches
(5/5)
  • Contrôle de la tâche
  • input E
  • task T (float)()
  • return R
  • var x 0.5 float in
  • weak abort
  • exec T (x)() return R
  • when E
  • end var
  • R avant E, x est mis à jour
  • E avant R, x vaut toujours O.5

56
Langage Esterel syntaxe et sémantiqueQuelques
problèmes (1/4)
  •  Réincarnation  de signaux
  • output S1,S2
  • loop
  • signal I in
  • present I then emit S1 else emit S2 end
  • pause
  • emit I
  • end signal
  • end loop

57
Langage Esterel syntaxe et sémantiqueQuelques
problèmes (2/4)
  • Absence de solution
  • var x integer in
  • loop x 1 end loop
  • end var
  • output S integer
  • emit S(?S1)

58
Langage Esterel syntaxe et sémantiqueQuelques
problèmes (3/4)
  • Absence de solution
  • module M
  • output S
  • present S else emit S end
  • end module
  • ou plusieurs solutions
  • module M
  • output S
  • present S then emit S end
  • end module

59
Langage Esterel syntaxe et sémantiqueQuelques
problèmes (4/4)
  • Plusieurs solutions
  • module M
  • output S1S2
  • present S1 then emit S2 end
  • present S2 else emit S1 end
  • end module
  • output S
  • emit S(?S)

60
Langage Esterel syntaxe et sémantiqueInterface
avec lenvironnement (1/3)
  • Règles à observer
  • Soit R le nom du module réactif
  • module R end module
  • La compilation Esterel génère, dans le langage
    hôte, la définition dune fonction de nom R
  • void R()
  • qui détermine les événements présents et absents
    à un instant dexécution

61
Langage Esterel syntaxe et sémantiqueInterface
avec lenvironnement (2/3)
  • Règles à observer
  • Pour tout signal dentrée E défini dans le module
    réactif R
  • input E 
  • la compilation Esterel génère, dans le langage
    hôte, la définition dune fonction de nom R_I_E
  • void R_I_E()
  • qui marque  présent  le signal E
  • Pour tout signal de sortie S
  • output S 
  • la compilation Esterel traduit linstruction
    Esterel emit S par un appel dune fonction de nom
    R_O_S dans le langage hôte
  • R_O_S()

62
Langage Esterel syntaxe et sémantiqueInterface
avec lenvironnement (3/3)
void SSP_IT() // récupération // du signal de //
lenvironnement R_I_E() R()
void R_I_E() . . .
input E
output S
environnement
void R_O_S() // traitement // correspondant //
à lémission // du signal S
Write a Comment
User Comments (0)
About PowerShow.com