Vous êtes sur la page 1sur 113

UE : SMB204

Systèmes Embarqués et Enfouis

Master
systèmes embarqués et mobiles sûrs

Systèmes Embarqués et Enfouis


Ce master prépare les élèves aux métiers du déve- OBJECTIFS DE LA FORMATION
loppement des systèmes embarqués
et mobiles sûrs (master SEMS). La formation vise à former des spécialistes en
informatique de niveau bac+5, experts en sys-
Grâce à des d’applications innovantes, les tèmes embarqués et mobiles sûrs.
systèmes embarqués sont un des domaines des
nouvelles technologies de l’information et de la Le master est conçu pour répondre aux objectifs
communication les plus actifs en termes de créa- suivants :

Introduction
tion d’emplois et de génération de valeur ajoutée ŢQS¨QBSFSMFT¨M§WFTŸMBDPODFQUJPOFUBVE¨WF-
pour les entreprises. loppement de systèmes embarqués : présenta-
tion de l’ensemble des plateformes utilisées dans
DOMAINES D’APPLICATION DES SYSTÈMES EMBARQUÉS : ces domaines et pratique du développement sur
ŢTZTU§NFTUFNQTS¨FMDSJUJRVFTMJ¨TBVYBQQMJDB- certaines d’entre elles ;
tions du transport et/ou du contrôle commande ; ŢQS¨QBSFSMFT¨M§WFTBVYDPOUSBJOUFTFUBTQFDUT
ŢMFTDBSUFTŸQVDF MBU¨M¨QIPOJFNPCJMF spécifiques du monde embarqué : le temps réel,
ŢMFTJNNFVCMFTJOUFMMJHFOUT la criticité, la sécurité, la sûreté, le coût des solu-
ŢMBHFTUJPOEFT¨OFSHJFT MśJOUFMMJHFODFBNCJBOUF tions, la taille des programmes, les performances
ŢMFTBQQMJDBUJPOTUPVSO¨FTWFSTMBQFSTPOOF des solutions, l’optimisation de la consommation.

Jean-Ferdinand Susini
Deux parcours permettent aux élèves d’appro-
PUBLIC CONCERNÉ fondir leurs compétences et d’atteindre un haut
niveau d’expertise :
Étudiants de niveau bac+4, master 1 en informa- ŢMFQBSDPVSTIntelligence ambiante forme aux
tique ou en dernière année d’école d’ingénieur réseaux de capteurs et à la spécificité de la

ŢSouhaitant se préparer aux métiers du

et sûrs (architecte, concepteur, développeur).


gestion de données dans de grands réseaux de
capteurs ;
développement de systèmes embarqués mobiles ŢM F QBSDPVST Système critique apporte un
complément sur la sûreté de fonctionnement à
Maître de Conférences, CNAM
Ţ"ZBOUVOHPºUQSPOPOD¨QPVSMFTBQQMJDBUJPOT travers des langages de spécification et
innovantes mobiles, l’intelligence ambiante, les l’utilisation des méthodes formelles.
réseaux de capteurs.

Paris, 5 octobre 2012


J.-F. Susini 5 Oct. 2012

Le cours
2

http://jeanferdysusini.free.fr/Cours/SEMS

Organisation
~18h : Virtualisation des systèmes embarqués
~24h : Ordonnancement et systèmes temps réels
~6h : Tool chain, cross compilation, techniques de
programmation spécifiques...
~3h : Examen final (QCM)
J.-F. Susini 5 Oct. 2012

Systèmes d’exploitation
3

Les OS standards (Windows, Unix, Linux, Mac OS)


Ce sont des OS généralistes qui comportent un ensemble de bibliothèques très riches

Les systèmes temps-réel (Wind River, QNX, RTAI)


Aussi appelés exécutifs temps-réel, ils sont dédiés à des domaines particuliers,
notamment dans la robotique, l’automobile, l’avionique, etc. L’ordonnancement des
tâches est très lié à la notion de temps

Les systèmes embarqués (TinyOS, Java Card, Windows


CE, iOS/Android)
Ils sont de taille très réduite, aussi dédiés à des domaines particuliers. On ne peut pas
développer directement sur un OS embarqué
J.-F. Susini 5 Oct. 2012

Système d’exploitation
4
Application

Éditeur de texte Tableur Navigateur .

Basses de données Programmes utilisateurs

Compilateur, Éditeur de liens, Chargeur, Assembleur, Debogueur


Appels Systèmes Commandes

Gestion des objets externes


Gestion de la concurrence Gestion de la protection
(fichiers)
Système

Gestion du processeur Gestion de la mémoire Gestion des entrées/sorties

Mécanismes des interruptions et modes de protection


Matériel

Machine physique
J.-F. Susini 5 Oct. 2012

Système d’exploitation
4
Application

Éditeur de texte Tableur Navigateur .

Basses de données Programmes utilisateurs

Compilateur, Éditeur de liens, Chargeur, Assembleur, Debogueur


Appels Systèmes Commandes

Gestion des objets externes


Gestion de la concurrence Gestion de la protection
(fichiers)
Système

Gestion du processeur Gestion de la mémoire Gestion des entrées/sorties

Mécanismes des interruptions et modes de protection


Matériel

Machine physique
J.-F. Susini 5 Oct. 2012

Système d’exploitation
4
Application

Éditeur de texte Tableur Navigateur .

Basses de données Programmes utilisateurs

Compilateur, Éditeur de liens, Chargeur, Assembleur, Debogueur


Appels Systèmes Commandes

Gestion des objets externes


Gestion de la concurrence Gestion de la protection
(fichiers)
Système

Gestion du processeur Gestion de la mémoire Gestion des entrées/sorties

Mécanismes des interruptions et modes de protection


Matériel

Machine physique
J.-F. Susini 5 Oct. 2012

Système d’exploitation
4
Application

Éditeur de texte Tableur Navigateur .

Basses de données Programmes utilisateurs

Compilateur, Éditeur de liens, Chargeur, Assembleur, Debogueur


Appels Systèmes Commandes

Gestion des objets externes


Gestion de la concurrence Gestion de la protection
(fichiers)
Système

Gestion du processeur Gestion de la mémoire Gestion des entrées/sorties

Mécanismes des interruptions et modes de protection


Matériel

Machine physique
J.-F. Susini 5 Oct. 2012

Système d’exploitation
4
Application

Éditeur de texte Tableur Navigateur .

Basses de données Programmes utilisateurs

Compilateur, Éditeur de liens, Chargeur, Assembleur, Debogueur


Appels Systèmes Commandes

Gestion des objets externes


Gestion de la concurrence Gestion de la protection
(fichiers)
Système

Gestion du processeur Gestion de la mémoire Gestion des entrées/sorties

Mécanismes des interruptions et modes de protection


Matériel

Machine physique
J.-F. Susini 5 Oct. 2012

Systèmes d’exploitation
5

Pour développer un logiciel embarqué, on utilise un x86


plus pour le maquettage même si le processeur cible est
PowerPC ou ARM, car :
c’est moins onéreux

la maquette peut servir à une démonstration sur PC

le code produit est destiné à un processeur cible

facilite la mise au point (débogage) du logiciel développé

Exemple du logiciel Qemu qui peut émuler une carte


basée sur ARM et qui tourne sur un PC/x86 sous Linux
J.-F. Susini 5 Oct. 2012

Compilation Croisée
6
UE : SMB204
Systèmes Embarqués et Enfouis

Master
systèmes embarqués et mobiles sûrs

Les systèmes embarqués


Ce master prépare les élèves aux métiers du déve- OBJECTIFS DE LA FORMATION
loppement des systèmes embarqués
et mobiles sûrs (master SEMS). La formation vise à former des spécialistes en
informatique de niveau bac+5, experts en sys-
Grâce à des d’applications innovantes, les tèmes embarqués et mobiles sûrs.
systèmes embarqués sont un des domaines des
nouvelles technologies de l’information et de la Le master est conçu pour répondre aux objectifs
communication les plus actifs en termes de créa- suivants :
tion d’emplois et de génération de valeur ajoutée ŢQS¨QBSFSMFT¨M§WFTŸMBDPODFQUJPOFUBVE¨WF-
pour les entreprises. loppement de systèmes embarqués : présenta-
tion de l’ensemble des plateformes utilisées dans
sources : support de cours de Samia BOUZEFRANE, Joëlle
DOMAINES D’APPLICATION DES SYSTÈMES EMBARQUÉS :
ŢTZTU§NFTUFNQTS¨FMDSJUJRVFTMJ¨TBVYBQQMJDB-
tions du transport et/ou du contrôle commande ;
ces domaines et pratique du développement sur
certaines d’entre elles ;
ŢQS¨QBSFSMFT¨M§WFTBVYDPOUSBJOUFTFUBTQFDUT

DELACROIX, Patrice KADIONIK, Marc POUZET


ŢMFTDBSUFTŸQVDF MBU¨M¨QIPOJFNPCJMF
ŢMFTJNNFVCMFTJOUFMMJHFOUT
ŢMBHFTUJPOEFT¨OFSHJFT MśJOUFMMJHFODFBNCJBOUF
spécifiques du monde embarqué : le temps réel,
la criticité, la sécurité, la sûreté, le coût des solu-
tions, la taille des programmes, les performances
ŢMFTBQQMJDBUJPOTUPVSO¨FTWFSTMBQFSTPOOF des solutions, l’optimisation de la consommation.

Deux parcours permettent aux élèves d’appro-


PUBLIC CONCERNÉ fondir leurs compétences et d’atteindre un haut
niveau d’expertise :
Étudiants de niveau bac+4, master 1 en informa- ŢMFQBSDPVSTIntelligence ambiante forme aux
tique ou en dernière année d’école d’ingénieur réseaux de capteurs et à la spécificité de la
gestion de données dans de grands réseaux de
ŢSouhaitant se préparer aux métiers du capteurs ;
développement de systèmes embarqués mobiles ŢM F QBSDPVST Système critique apporte un
et sûrs (architecte, concepteur, développeur). complément sur la sûreté de fonctionnement à
Ţ"ZBOUVOHPºUQSPOPOD¨QPVSMFTBQQMJDBUJPOT travers des langages de spécification et
innovantes mobiles, l’intelligence ambiante, les l’utilisation des méthodes formelles.
réseaux de capteurs.
J.-F. Susini 5 Oct. 2012

logiciel embarqué
8

Comme dans toute taxonomie, la définition est


complexe et les frontières floues : un logiciel embarqué
(embedded software) est un programme utilisé dans un
équipement industriel ou un bien de consommation
[Ficheux 2010]. Synonyme de logiciel intégré, dédié,
enfoui.
Exemples de logiciels : Programmateur de lave-linge,
Commande de vol d’un avion, Gestion de transactions
bancaires dans une carte à puce …
J.-F. Susini 5 Oct. 2012

Les programmes sont partout !


9

L’informatique omniprésente :

hardware ou software
J.-F. Susini 5 Oct. 2012

Est-ce bien sage ?


10

Tant de problèmes que l’on peut attribuer


aux programmes, dont certains coûtent
très cher.
J.-F. Susini 5 Oct. 2012

logiciel embarqué
11

Le logiciel doit être :


ciblé : limité aux fonctions pour lesquelles il est conçu
fiable: car destiné à un fonctionnement autonome et/ou critique
maintenable pour toute la durée de vie du produit (ex. 10 ans pour une
automobile, 40 ans pour un avion)
doté d’une IHM spécifique : l’IHM se réduit à un afficheur de petite taille de
type LCD, les périphériques d’entrée sont de petits boutons (évolution de l’IHM
vers l’écran tactile comme dans le téléphone, mais nécessite une bibliothèque
graphique adaptée)
optimisé
de petite taille pour le tester, vérifier et/ou le certifier
embarqué sur des équipements produits à grande échelle
performant : du point de vue temps de réponse

J.-F. Susini 5 Oct. 2012

logiciel embarqué
12

Un système embarqué (embedded system ou système


enfoui est une combinaison de matériels et de logiciels
permettant de remplir une ou plusieurs fonctions
spécifiques avec des contraintes plus ou moins sévères
telles que la consommation, la température, la taille, les
performances … [Patrice Kadionik, 2004]
Les ressources utilisées pour mener à bien les calculs
sont en nombre limité (contraintes matérielles)
Intervention humaine directe difficile voire impossible
J.-F. Susini 5 Oct. 2012

logiciel embarqué
13

Un système embarqué :
Est un système numérique
Utilise généralement un processeur
Exécute un logiciel dédié pour réaliser une
fonctionnalité précise
Remplace souvent des composants
électromécaniques
N’a pas réellement de clavier standard, l’affichage
est limité (écran LCD…) ou n’existe pas du tout
N’est pas un PC traditionnel
J.-F. Susini 5 Oct. 2012

Les solutions informatiques


14

Forte évolution depuis les années 70 :


Loi de Moore : doublement tous les 18 mois !
Informatique embarquée : des puces partout !
électronique grand public : téléphones, audio, vidéo,
jeux/jouets, ...
véhicules : automobile, transports en commun,
avionique, …
Circuits dédiés (ASIC) ou spécialisés (DSP,…),
circuits programmables (FPGA), processeurs
généralistes exécutant du logiciel, SOCs, Codesign
J.-F. Susini 5 Oct. 2012

logiciel embarqué
15

Croissance rapide des processeurs :


on est passé rapidement du processeur 8 bits, à 16
bits, à 32 bits et à 64 bits
En 2004, il a été vendu environ 260 millions de
processeurs pour le marché du PC grand public à
comparer aux 14 milliards de processeurs tout type
confondu (microprocesseur, microcontrôleur) pour le
marché de l'embarqué
J.-F. Susini 5 Oct. 2012

logiciel embarqué
16

Le Choix d’un processeur 32 bits pour l’embarqué


J.-F. Susini 5 Oct. 2012

logiciel embarqué
17

Un système embarqué est un système d’exploitation


avec :
empreinte mémoire faible (qlq Mo, qlq Ko en fonction de la plate-forme cible)
ensemble de programmes permettant de gérer les ressources et d’assurer un
ensemble de services
évite au développeur de la programmation bas niveau lié au matériel
l’utilisation d’un système ne sera pas nécessaire si la taille mémoire est réduite
et si la tâche à accomplir est rudimentaire

Un système embarqué
doit être de faible coût
de faible consommation pour maximiser la durée de vie des batteries
de faible encombrement et faible poids (pour les équipements portables)
J.-F. Susini 5 Oct. 2012

logiciel embarqué
18

Exemples de domaines d’applications


télécommunication: centraux téléphoniques,
téléphones mobiles
Réseaux informatiques: routeurs, switchs
Périphériques informatiques: imprimantes,
photocopieurs
transport (aéronautique, ferroviaire, automobile)
systèmes médicaux, multimédia
J.-F. Susini 5 Oct. 2012

logiciel embarqué
19

Temps partagé et temps réel


Dans les systèmes classiques, le temps est partagé entre les tâches de manière
équitable
Dans les systèmes temps réel, les tâches doivent être exécutées dans les délais
impartis

D’où les stratégies d’ordonnancement utilisées sont


différentes : préemption et commutation de contexte
Dans un système temps réel préemptif: une tâche est sélectionnée par
l’ordonnanceur pour obtenir le processeur, cette tâche peut interrompre une
autre tâche moins prioritaire
Un processus peut être composé de plusieurs threads: le passage d’une threadà
une autre est un changement de contexte rapide car les threads partagent le
contexte du processus auquel elles sont attachées
J.-F. Susini 5 Oct. 2012

logiciel embarqué
20

L’empreinte mémoire est la taille mémoire occupée par


le système. La réduction de l’empreinte mémoire est la
tâche principale d’un développeur de système embarqué
car :
la taille mémoire (RAM, ROM, EEPROM, Flash) est
très réduite
l’impact économique énorme sur l’industrialisation
finale du produit
J.-F. Susini 5 Oct. 2012

logiciel embarqué
21

Langages utilisés
Assembleur pour des fonctions spécifiques (drivers)
Langages C/C++ : programmation proche du
matériel donc adapté à l’embarqué
Langage Java : Java Card (cartes à puce, JavaME ou
Java Android pour les téléphones)
J.-F. Susini 5 Oct. 2012

Importance du couple matériel-logiciel


22

Un exemple : la MMU
Composant matériel qui permet (i) la conversion des adresses virtuelles en
adresses physiques, (ii) le contrôle l’accès mémoire des applications
(SIGSEGV si accès à l’espace noyau)

Il existe des processeurs sans MMU (ex. ARM 7)


Il existe des OS qui n’utilisent pas la MMU
µC/OS et VxWorks n’utilisent pas la MMU par défaut (le noyau et les
programmes se partagent le même espace mémoire)

uClinux: noyau Linux utilisable pour des processeurs avec et sans MMU
(www.uclinux.org), utilise uClibc. Inconvénient: pas de protection mémoire si
pas de MMU, d’où une application erronée peut planter le système
J.-F. Susini 5 Oct. 2012

Un système embarqué/temps réel


23
J.-F. Susini 5 Oct. 2012

Domaine de l’avionique
24

Dans un Airbus A340 [Boniol 1998], Il y a 115


équipements avec :
3 calculateurs qui élaborent les paramètres inertiels
2 calculateurs qui implémentent les lois de guidage
5 calculateurs qui implémentent les lois de pilotage
2 calculateurs d’alarmes …
Environ 200 000 données sont échangées
J.-F. Susini 5 Oct. 2012

Système embarqué sur une carte à puce


25
Système propriétaire ou machine virtuelle Java (Java Card):

ROM/ RAM/EEPROM: quelques Ko (16Ko à 256 Ko).

utilisé dans la téléphonie, paiement bancaire, transport, santé, accès, etc

cartes à contact, sans contact ou les deux (dual interface)

Pour les Java Card, les API sont réduites


J.-F. Susini 5 Oct. 2012

Système embarqué sur un téléphone


26

Exemple de l’iPhone 4

Processeur 1 GHz (1,2 GHz pour Blackberry Torch 9860)

 RAM: 512 Mo (768 Mo pour Blackberry Torch 9860 )

Mémoire Flash: 32 Go (4Go pour Blackberry Torch 9860 )


J.-F. Susini 5 Oct. 2012

Autres exemples d’application


27

Transports (métro, aérospatiale, automobiles, etc.)


Médias (décodeurs numériques)
Services téléphoniques (terminal GSM, auto-
commutateur)
Supervision médicale
Systèmes de production industrielle : centrale nucléaire,
chaîne de montage,usine chimique…
Robotique (ex. PathFinder : sonde lancée par la NASA
en mars 1996, composée d'une station au sol et d'un
robot mobile Sojourner )
UE : SMB204
Systèmes Embarqués et Enfouis

Master
systèmes embarqués et mobiles sûrs

Les systèmes temps réels


Ce master prépare les élèves aux métiers du déve- OBJECTIFS DE LA FORMATION
loppement des systèmes embarqués
et mobiles sûrs (master SEMS). La formation vise à former des spécialistes en
informatique de niveau bac+5, experts en sys-
Grâce à des d’applications innovantes, les tèmes embarqués et mobiles sûrs.
systèmes embarqués sont un des domaines des
nouvelles technologies de l’information et de la Le master est conçu pour répondre aux objectifs
communication les plus actifs en termes de créa- suivants :
tion d’emplois et de génération de valeur ajoutée ŢQS¨QBSFSMFT¨M§WFTŸMBDPODFQUJPOFUBVE¨WF-
pour les entreprises. loppement de systèmes embarqués : présenta-
tion de l’ensemble des plateformes utilisées dans
sources : support de cours de Samia BOUZEFRANE, Joëlle
DOMAINES D’APPLICATION DES SYSTÈMES EMBARQUÉS :
ŢTZTU§NFTUFNQTS¨FMDSJUJRVFTMJ¨TBVYBQQMJDB-
tions du transport et/ou du contrôle commande ;
ces domaines et pratique du développement sur
certaines d’entre elles ;
ŢQS¨QBSFSMFT¨M§WFTBVYDPOUSBJOUFTFUBTQFDUT

DELACROIX, Patrice KADIONIK


ŢMFTDBSUFTŸQVDF MBU¨M¨QIPOJFNPCJMF
ŢMFTJNNFVCMFTJOUFMMJHFOUT
ŢMBHFTUJPOEFT¨OFSHJFT MśJOUFMMJHFODFBNCJBOUF
spécifiques du monde embarqué : le temps réel,
la criticité, la sécurité, la sûreté, le coût des solu-
tions, la taille des programmes, les performances
ŢMFTBQQMJDBUJPOTUPVSO¨FTWFSTMBQFSTPOOF des solutions, l’optimisation de la consommation.

Deux parcours permettent aux élèves d’appro-


PUBLIC CONCERNÉ fondir leurs compétences et d’atteindre un haut
niveau d’expertise :
Étudiants de niveau bac+4, master 1 en informa- ŢMFQBSDPVSTIntelligence ambiante forme aux
tique ou en dernière année d’école d’ingénieur réseaux de capteurs et à la spécificité de la
gestion de données dans de grands réseaux de
ŢSouhaitant se préparer aux métiers du capteurs ;
développement de systèmes embarqués mobiles ŢM F QBSDPVST Système critique apporte un
et sûrs (architecte, concepteur, développeur). complément sur la sûreté de fonctionnement à
Ţ"ZBOUVOHPºUQSPOPOD¨QPVSMFTBQQMJDBUJPOT travers des langages de spécification et
innovantes mobiles, l’intelligence ambiante, les l’utilisation des méthodes formelles.
réseaux de capteurs.
J.-F. Susini 5 Oct. 2012

Le temps réel
29

1ère def. : application mettant en œuvre un système


informatique dont le fonctionnement est assujetti à
l’évolution dynamique d’un procédé extérieur qui lui est
connecté et dont il doit contrôler le comportement.
Système réactif

2ème def. : système dont la correction dépend non


seulement de la correction logique du programme qui le
contrôle, mais aussi de l’instant auquel il fournit ses
résultats
Ce n’est pas la rapidité de réaction qui est en cause, mais le moment de cette
réaction
J.-F. Susini 5 Oct. 2012

Le temps réel
30

Application de contrôle
multitâches avec concurrence
communication
Commandes contraintes de précédence
Fonction de
pilotage

• Fonction répétitives “périodique”


• Alarmes, Aléas, “apériodiques”

Mesures
Evénements
Fonction de suivi

Contraintes de temps
J.-F. Susini 5 Oct. 2012

Domaine d’application
31

Suivi de position d’objets par satellites


Pilotage de chaînes de montage dans des usines
automatisée
Contrôle de procédés industriels (mécanique, chimie,
…)
Applications embarquées (assistance au pilotage,
contrôle de trajectoire, …)
Applications mobiles (audio, vidéo, …)
Services Web…
J.-F. Susini 5 Oct. 2012

Ordre de grandeur de la contrainte TR


32

Mesures scientifiques : 10ns - 1ms


Systèmes radar : 1µs - 1ms
Systèmes vocaux : 10µs - 10ms
Robotique : 1ms - 10 ms
Contrôle de stockage : 1s - 1mn
Contrôle de fabrication : 1mn - 1h
Contrôle de réactions chimiques : 1h et plus
Mission spatiale : mois ou années
J.-F. Susini 5 Oct. 2012

Importance de la contrainte TR
33

temps réel dur (hard real-time) : le non respect des


échéances est un dysfonctionnement grave du système
Le contrôle d’un dispositif d’assistance au freinage dans une voiture

temps réel souple (soft real-time) : le non respect des


échéances est sans conséquence grave pour l’application
un flux vidéo qui désynchronise images et son en cours de diffusion

temps réel ferme (firm real-time) : temps réel souple


avec le manquement occasionnel des échéances
un flux vidéo qui perd des images, voir du son en cours de diffusion
J.-F. Susini 5 Oct. 2012

Caractéristiques
34

Contraintes temporelles
comportement correct “dans le pire des cas”
expression des contraintes temporelles : quand ?
que faire si impossible ? réaction à la faute temporelle
modification dynamique des contraintes
requête échéance

t
Contrôle de concurrence
parallélisme : caractéristique du monde réel
programme = ensemble d’activités indépendantes ou non (ressources,
précédence)
outils d’expression
performance, distribution
J.-F. Susini 5 Oct. 2012

Caractéristiques
35

fiabilité temporelle, disponibilité, sûreté de


fonctionnement
fiabilité : physique et logicielle
disponibilité : service approprié/sous dimensionné
sûreté de fonctionnement : prévention de défaillance catastrophique
faute = coût (financier, humain)

Prise en compte des Entrées/Sorties


interface avec le monde réel
intégration avec les langages de programmation de haut niveau
J.-F. Susini 5 Oct. 2012

Caractéristiques
36

taille et complexité
variété des besoins et des activités issue du monde réel
évolution permanente : extensibilité
modularité : découpage en composants indépendants

implantation efficace
restriction dans l’utilisation du langage
prise en compte du passage à l’échelle

certification
garantir un fonctionnement conforme aux spécifications

simulation prototypage
vérification a priori de la conception
vérification a posteriori avec une plate-forme d’essais
J.-F. Susini 5 Oct. 2012

Architecture d’un système TR


37

Observations
Système informatique mesures
de contrôle Capteurs
passifs ou actifs

interface d’E/S
événements

numériques ou
analogiques

physique
Calculateur

contrôlé
Procédé
commandes
Actionneurs
interface de passifs ou actifs
communications Actions
(série, parallèle, ...)
s a at d
l’é
uv u
consignes

affichage

t
eg pr
ar oc
de éd
de é

IHM Stockage Réseau


J.-F. Susini 5 Oct. 2012

Architecture d’un système TR


38

Le calculateur :
monoprocesseur
multiprocesseurs
réparti
Logiciel du système de contrôle :
exécutif temps réel (gestion du partage des
ressources de calcul, accès concurrent aux autres
ressources, synchronisation et communication)
tâches utilisateur
J.-F. Susini 5 Oct. 2012

Système multitâche
39

Opérateur

affichage Directives
Interruptions

Système temps réel

Gestion des
Procédé

Séquenceur Primitives
interruptions

Activation
Requête

Tâche 1 Tâche n
Programme
utilisateur

Ressources
commandes
Périphériques Mémoire services OS
Mesures
J.-F. Susini 5 Oct. 2012

Les tâches
40

Indépendantes ou coopératives (processus/threads)


Caractérisées par leur contraintes temporelles :
date de réveil
durée d’exécution
délai critique
délai critique
échéance
Deux types de tâches :
périodiques -> période t
durée

apériodiques Période
J.-F. Susini 5 Oct. 2012

Exécutif Temps Réel


41

Fourni des services adaptés du noyau : Déterminisme


Gestion de l’enchaînement des tâches en tenant compte des concurrences existantes
sur les ressources
Application : logique de
la conduite du procédé
Exécutif TR : ensemble
de primitives

ordonnancement ;
communication ;
synchronisation ;
gestion mémoire ;
IT, ES, fichiers ;
traitement des erreurs ; Noyau : liaison matériel
J.-F. Susini 5 Oct. 2012

Gestion des E/S


42

Mécanisme fondamental d’un système d’exploitation


scrutation cyclique (polling)
gestion des interruptions (IT)
La scrutation cyclique repose sur un algorithme simple
faire
faire
%attente%
tq données vide
lire données
traiter données % rangement mémoire %
jusqu’à arrêt système
J.-F. Susini 5 Oct. 2012

Déterminisme
43

Application Système

Sauvegarde
du contexte
Latence
IT de réveil
e

Traitement de l’IT

Réordonnancement :
Restitution du contexte commutation des
tâches
J.-F. Susini 5 Oct. 2012

Ordonnancement
44

Problème : attribution du processeur avec respect des


échéances des tâches

Algorithmes :
préemptif/ non préemptif
Hors ligne/ en ligne (statique/dynamique)
Conduits par la notion de priorité (fixe ou
dynamique)
J.-F. Susini 5 Oct. 2012

Exemples d’OS TR
45

Vxworks : noyau temps réel le plus utilisé dans l’industrie


développé par Wind River (www.windriver.com)
QNX: développé par la société canadienne QNX Software noyau
temps réel de type Unix, conforme à Posix. Faible empreinte
mémoire (www.qnx.com)
µC/OS II : développé par le canadien Jean J. Labrosse, noyau temps
réel, disponible sur un grand nombre de processeurs
(www.ucos-
ii.com)
Windows: Windows CE pour les navigateurs GPS…
LynxOS : développé par LynuxWorks (www.lynuxworks.com)
système temps réel conforme à Posix
J.-F. Susini 5 Oct. 2012

Exemples d’OS TR
46

Nucleus: noyau temps réel (open source) inclut une couche TCP/IP,
un navigateur Web, une interface graphique et un serveur http.
Souvent utilisé dans les terminaux de paiement bancaires (TPE)
développé par Mentor Graphics (www.mentor.com)
VRTX: connu pour avoir équipé le télescope spatial Hubble noyau
temps réel développé aussi par Mentor Graphics
(www.mentor.com)
eCos : développé par Red Hat, noyau temps réel (open source),
faible empreinte mémoire (www.ecos.sourceware.org)
J.-F. Susini 5 Oct. 2012

Systèmes temps réels


47

Références :
Introduction aux systèmes temps réel, Ch.
Bonnet, I. Demeure, Edition HERMES
Le temps réel en milieu industriel, Dorseuil A. et
Pillot P., édition Dunod, collection informatique
industrielle, 1991
supports de cours sur l’informatique industrielle-
systèmes temps réel, Jean-François Peyre,
CNAM(Paris)
Linux embarqué, Pierre Ficheux, Ed. Eyrolles,
2005
J.-F. Susini 5 Oct. 2012

Systèmes temps réels


48

Références :
supports de cours sur le temps réel, Frank
Singhoff, département informatique, université de
Bretagne Occidentale (http://beru.univ-brest.fr/
~singhoff/supports.html)
Linux embarqué, Pierre Ficheux, Ed. Eyrolles,
2010
Embedded Linux kernel and driver development,
M. Opdenacker, http://free-electrons.com/,
traduction française par Julien Boibessot
J.-F. Susini 5 Oct. 2012

Systèmes temps réels


49

Références :
LES SYSTEMES D'EXPLOITATION: COURS ET
EXERCICES CORRIGES UNIX, LINUX et
WINDOWS XP avec C et JAVA, Samia
Bouzefrane, Ed. Dunod, 2003
Support de cours de Kadionik, http://
uuu.enseirb.fr/~kadionik/enseirb/e3/IT3 31/
embeddedsystem_enseirb.pdf
UE : SMB204
Systèmes Embarqués et Enfouis

Master
systèmes embarqués et mobiles sûrs

Les systèmes réactifs


Ce master prépare les élèves aux métiers du déve- OBJECTIFS DE LA FORMATION
loppement des systèmes embarqués
et mobiles sûrs (master SEMS). La formation vise à former des spécialistes en
informatique de niveau bac+5, experts en sys-
Grâce à des d’applications innovantes, les tèmes embarqués et mobiles sûrs.
systèmes embarqués sont un des domaines des
nouvelles technologies de l’information et de la Le master est conçu pour répondre aux objectifs
communication les plus actifs en termes de créa- suivants :
tion d’emplois et de génération de valeur ajoutée ŢQS¨QBSFSMFT¨M§WFTŸMBDPODFQUJPOFUBVE¨WF-
pour les entreprises. loppement de systèmes embarqués : présenta-
tion de l’ensemble des plateformes utilisées dans
sources : Synlap.org, support de Marc Pouzet, support de
DOMAINES D’APPLICATION DES SYSTÈMES EMBARQUÉS :
ŢTZTU§NFTUFNQTS¨FMDSJUJRVFTMJ¨TBVYBQQMJDB-
tions du transport et/ou du contrôle commande ;
ces domaines et pratique du développement sur
certaines d’entre elles ;
ŢQS¨QBSFSMFT¨M§WFTBVYDPOUSBJOUFTFUBTQFDUT

Frédéric Boussinot, support de Gérard Berry…


ŢMFTDBSUFTŸQVDF MBU¨M¨QIPOJFNPCJMF
ŢMFTJNNFVCMFTJOUFMMJHFOUT
ŢMBHFTUJPOEFT¨OFSHJFT MśJOUFMMJHFODFBNCJBOUF
spécifiques du monde embarqué : le temps réel,
la criticité, la sécurité, la sûreté, le coût des solu-
tions, la taille des programmes, les performances
ŢMFTBQQMJDBUJPOTUPVSO¨FTWFSTMBQFSTPOOF des solutions, l’optimisation de la consommation.

Deux parcours permettent aux élèves d’appro-


PUBLIC CONCERNÉ fondir leurs compétences et d’atteindre un haut
niveau d’expertise :
Étudiants de niveau bac+4, master 1 en informa- ŢMFQBSDPVSTIntelligence ambiante forme aux
tique ou en dernière année d’école d’ingénieur réseaux de capteurs et à la spécificité de la
gestion de données dans de grands réseaux de
ŢSouhaitant se préparer aux métiers du capteurs ;
développement de systèmes embarqués mobiles ŢM F QBSDPVST Système critique apporte un
et sûrs (architecte, concepteur, développeur). complément sur la sûreté de fonctionnement à
Ţ"ZBOUVOHPºUQSPOPOD¨QPVSMFTBQQMJDBUJPOT travers des langages de spécification et
innovantes mobiles, l’intelligence ambiante, les l’utilisation des méthodes formelles.
réseaux de capteurs.
J.-F. Susini 5 Oct. 2012

Les systèmes réactifs


51

Les systèmes réactifs : (D. Arel et A. Pnueli)


• Systèmes transformationnels : processus
acceptant des données au démarrage et
produisant des résultats à la fin
• Systèmes interactifs : processus interagissant de
façon répétitive en répondant à des sollicitations
lorsqu’ils sont prêts à les traiter. La sollicitation
fixe les entrées à traiter et les résultats sont
produits après traitements
• Systèmes réactifs : processus toujours prêts à
réagir à de nouvelles entrées (interaction
constante avec l'environnement)
J.-F. Susini 5 Oct. 2012

Les systèmes réactifs


52

Exemple de systèmes transformationnels : une


procédure, une fonction, une commande (cc, LaTeX, …)
Exemple de systèmes interactifs : systèmes
d’exploitation, un shell UNIX, applications modales,
GUI de station de travail, Jeux, …
Systèmes réactifs : réagissent continuellement à leur
environnement à la vitesse imposée par celui-ci
Systèmes de commande, surveillance, traitement du
signal, protocoles de communication, IHM embarquée
→temps de réponse et mémoire statiquement bornés
J.-F. Susini 5 Oct. 2012

Les systèmes réactifs


53

Mutation du monde de l’automatique ; de l’analogique


vers le numérique ; une évolution lente :
remplacement des asservissements mécaniques par
des systèmes électromécaniques puis électroniques
évolution des systèmes de pilotage
avionique : commande mécanique directe puis
assistance électromécanique (Caravelle) puis
commande analogique (Concorde) et enfin
numérique (Airbus)
automobile : suit la même évolution avec un
temps de retard (freinage, direction, régime
moteur, tenue de route, …)
J.-F. Susini 5 Oct. 2012

Les systèmes réactifs


54

évolution des systèmes à relais (logique implanté sur


des dispositifs mécaniques ou électriques) vers des
logiciels
évolution des contrôles de processus industriels
(régulation, chaîne de production, gestion de stocks,
…)
Maintenant :
utilisation domestique : machine à laver, HiFi, …
utilisation grand public : informatique et
télécommunication (souvent interactif)
J.-F. Susini 5 Oct. 2012

Caractéristiques des systèmes réactifs


55

Parallélisme : les systèmes contrôlent en général


plusieurs actions simultanément, les contrôleurs et le
procédé contrôlé fonctionnent en parallèle
➡ Loi de composition naturelle des systèmes (tangage
et roulis; axes de rotation d’un bras articulé; …)
Temps réel : les échéances sont critiques. Il faut
répondre aussi vite que possible (réactivité) et ne pas
rater de sollicitation de l’environnement => aller vite !
➡ La physique n’attend pas !
J.-F. Susini 5 Oct. 2012

Caractéristiques des systèmes réactifs


56

Distribution : capteurs, actionneurs, contrôleurs sont


généralement physiquement distribués. Mise en œuvre
d’interconnexions entre calculateurs
➡ temps identique pour tous (physique newtonienne)
Déterminisme : facilité la compréhension et le
déverminage des systèmes. Phénomènes reproductibles
et prédictibles. Assurer concurrence et déterminisme
➡ que se passe t’il si j'appuie sur la pédale de frein ?
J.-F. Susini 5 Oct. 2012

Caractéristiques des systèmes réactifs


57

Fiabilité : la sûreté de fonctionnement doit être assuré


tout au long du fonctionnement du système. Coût/Temps
de mise sur le marché. Que peut-on garantir ?
(vérification). Que peut-on tester ? Limiter le découverte
des problèmes en cours de route
➡ Y a t’il une position de repli dans l’avion ?
Hétérogénité : système continu (phénomène physique)
et/ou discret (seuils, alarmes, interruptions, …). Grand
nombre de stimuli de nature différente
➡ modélisation des stimuli et passage à l’échelle
J.-F. Susini 5 Oct. 2012

Les approches traditionnelles


58

Les implantations matérielles : systèmes analogiques


(automatique et traitement du signal), relais, circuits
spécialisés (micro-contrôleurs, DSP, ASIC, …)
➡ utilisation naturelle du parallélisme physique
➡ coûts, design ad hoc
Langage de bas niveau (assembleur, C)
➡ efficacité, mais pas de garanties
➡ concurrence difficile à implanter
➡ maintenance délicate
J.-F. Susini 5 Oct. 2012

Les approches traditionnelles


59

Automates, machines à états finies


➡ modélisation déterministe et efficace
➡ possibilité de vérification formelle
➡ pas de passage à l’échelle (explosion combinatoire)
➡ pas de compositionnalité
formalismes graphiques : Block Diagram, Grafcet,
réseaux de petri, UML, …
➡ vérification formelle et modélisation déterministe
➡ difficile de traiter des gros systèmes
J.-F. Susini 5 Oct. 2012

Les approches traditionnelles


60

Langages de programmation traditionnels s’appuyant


sur des OS multitâches temps réels
➡ threads ou processus (communication asynchrone
ou/et primitive de synchronisation)
➡ Ada (tâches + rendez-vous), OCCAM, Java, …
➡ concurrence mais pas de déterminisme
➡ vérification formelle difficile
➡ peu efficace (run-time coûteux en mémoire et en
calcul, politique d’ordonnancement inefficace voir
inadaptée), optimisation difficile
➡ sépare souvent ordonnancement et com/synchro
➡ peu de support dans l’embarqué
J.-F. Susini 5 Oct. 2012
Aérospatiale pioneering steps in the early
eighties Block Diagram
61

control models
modèle d’une(block-diagrams)
loi de contrôle

formal software
=
specification
= spécification d’un logiciel

Aérospatiale :
Spécification assisté par Assis
“Spécification
automatic code generation Ordinateur
par(SAO - A320)
Ordinateur”(SAO)
génération automatique “Computer Aided Spe
Software
de code cation”
J.-F. Susini 5 Oct. 2012

GRAFCET
62

Diagramme séquentiel (SFC) : spécification graphique


de la fonction et du comportement d’un système de
commande indépendante de l’implantation
Trois principaux composants :
étape (état ou partie d’état) n 0 n action

transition ? réceptivité

liaison orientée (succession étape-transition) ou


n
n n n

n
n n n
qualified code generator5 Oct.
J.-F. Susini
for2012s
plications
Prise en compte du temps continu
63
Simulink/Stateflow Le plus gros vendeur de
continuous/discrete
licence d’outils de
développement pour les
toolbox
systèmes embarqués :
theMathWorks
defacto avec standard
la suite
Matlab/Simulink/Stateflow
elling
Formal
Le methods:
spécification automatic
sous forme graphique mathematical
correspond bien à la
dynamic
culture systems
des ingénieurs (souvent des automaticiens), des autorités
de certification, ...
J.-F. Susini 5 Oct. 2012

Caractéristiques des systèmes réactifs


64

Entrées Sorties
e1, e2, ..., en s1, s2, …, sn
Réaction du système
(calcul élémentaire)

La réaction du système est caractérisée par la fonction entre les


entrées {e1, …, en} et les sorties {s1, …, sn}
Dans le temps (un nombre fini ou non de réactions successives)
le système discret définit une fonction sur des suites (flots)
d’entrées vers des suites de sorties (flots)
J.-F. Susini 5 Oct. 2012

Caractéristiques des systèmes réactifs


64

Entrées Sorties
e1, e2, ..., en s1, s2, …, sn
Réaction du système
(calcul élémentaire)

Environnement

La réaction du système est caractérisée par la fonction entre les


entrées {e1, …, en} et les sorties {s1, …, sn}
Dans le temps (un nombre fini ou non de réactions successives)
le système discret définit une fonction sur des suites (flots)
d’entrées vers des suites de sorties (flots)
J.-F. Susini 5 Oct. 2012

Caractéristiques des systèmes réactifs


65

On considère un système discret gérant une entrée e de


type T1 et produisant une sortie s de type T2
IN IN
f:T 1 ⎯→ T
⎯ 2

Un système réactif est causal : le système ne dépend


que de son passé
pour un système gérant une entrée e et produisant

une sortie s on a :
(s) n ∈IN = f (e) n ∈IN / sn = f (e1,…,en )
J.-F. Susini 5 Oct. 2012

Caractéristiques des systèmes réactifs


66

En fait on peut caractériser l’évolution d’un système


réactif par un état et deux fonctions :
l’état M du système de type S, avec un état initial M0
une fonction de transition ft permettant de passer à
chaque instant d’un état Mn-1 du système à l’instant
précédent à l’état Mn
f t : S × T1 ⎯
⎯→ S / M n = f t (M n−1,en )
une fonction fo produisant les sorties

f 0 : S × T1 ⎯
⎯→ T2 / sn = f o (M n−1,en )

J.-F. Susini 5 Oct. 2012

L’expression du temps
67

pas des sémantique du temps


WAIT 2 secondes;
≠ de wait 5 secondes
WAIT 3 secondes
pas de synchronisation naturelle
WAIT 2 secondes; signifie simplement que B recevra le signal
B ? signal dans au moins 2 secondes s’il l’écoute
pas de diffusion
B ? signal B et C reçoivent-ils le signal au même
C ? signal moment ?

pas de simultanéité, pas d’absence


B ? signal1 and signal2 B reçoit-il signal1 et signal2 simultanément ?
C ? non signal1 C peut-il considérer le signal1 absent ?
J.-F. Susini 5 Oct. 2012

L’expression du temps
68

pas des sémantique du temps


WAIT 2 secondes;
≠ de wait 5 secondes
WAIT 3 secondes
pas de synchronisation naturelle
WAIT 2 secondes; signifie simplement que B recevra le signal
B ? signal dans au moins 2 secondes s’il l’écoute
pas de diffusion
B ? signal B et C reçoivent-ils le signal au même
C ? signal moment ?

pas de simultanéité, pas d’absence


B ? signal1 and signal2 B reçoit-il signal1 et signal2 simultanément ?
C ? non signal1 C peut-il considérer le signal1 absent ?
J.-F. Susini 5 Oct. 2012

L’expression du temps
68

pas des sémantique du temps


WAIT 2 secondes;
≠ de wait 5 secondes
WAIT 3 secondes
pas de synchronisation naturelle
WAIT 2 secondes; signifie simplement que B recevra le signal

Pb
B ? signal
pas de diffusion
: éliminer lesdans au moins 2 secondes s’il l’écoute

bugs temporels
B ? signal
C ? signal
B et C reçoivent-ils le signal au même
moment ?

pas de simultanéité, pas d’absence


B ? signal1 and signal2 B reçoit-il signal1 et signal2 simultanément ?
C ? non signal1 C peut-il considérer le signal1 absent ?
J.-F. Susini 5 Oct. 2012

Modèle inadapté
69

Langages Turing complet : trop expressif, trop dur à


vérifier
Complexité des modèles de programmation générateurs
d’erreurs : arithmétique de pointeurs, allocation
dynamique, …
A-t’on besoin de tout ça ?
le parallélisme et le déterminisme sont absents alors
qu’ils sont fondamentaux !
➡ Inventer des langages spécifiques ayant un pouvoir
expressif limité, une sémantique formelle, adaptée
à la culture du domaine et offrant des garanties
J.-F. Susini 5 Oct. 2012

Une autre solution


70

Cette culture est multiple :


contrôle continu (théorie du contrôle, automatique,
schéma/bloc)
contrôle discret (théorie des automates)
Peut-on proposer des langages dédiés adaptés au
domaine?
permettre l’abstraction de la notion de temps
offrir des primitives manipulant le temps
J.-F. Susini 5 Oct. 2012

L’Approche Réactive/Synchrone
71

Echantillonnage de l’environnement ; la réaction doit être


suffisamment brève pour ne pas perdre d’information
• Automaticiens
• Informaticiens

Environnement Environnement
J.-F. Susini 5 Oct. 2012

Notion de contrôle/commande
72

Approche de l’automaticien :
Commande : lois qui régissent l’évolution
dynamique du système. Asservissement des
actionneurs en fonction des capteurs : lois en temps
continu -> (discrétisation du temps, échantillonnage)
Contrôle : lois qui gèrent le comportement global du
système : surveillance de la mission et de
l’enchaînement des lois de commandes, choix des
lois de commandes en fonction de l’environnement,
traitement des erreurs : en temps discret (système
événementiel)
J.-F. Susini 5 Oct. 2012

Automatique, traitement du signal


73

Un signal/événement est représenté par une suite de


valeurs (un flot)
équation de suites, fonctions génératrices, transformées en z
formalismes graphiques pour représenter les réseaux d’opérateurs
Pb : transcription manuelle de ces équations en code séquentiel : source d’erreur

X
Y0 = bX 0 , ∀n Yn +1 = aYn + bX n +1
b
Y
Z +
a €
J.-F. Susini 5 Oct. 2012

Automatique, traitement du signal


73

Un signal/événement est représenté par une suite de


valeurs (un flot)
équation de suites, fonctions génératrices, transformées en z
formalismes graphiques pour représenter les réseaux d’opérateurs
Pb : transcription manuelle de ces équations en code séquentiel : source d’erreur

X
Y0 = bX 0 , ∀n Yn +1 = aYn + bX n +1
b
Y
Z + En 84 : Lustre :
a € • écrire directement des équations de suites
• fournir un compilateur et des outils d’analyse
J.-F. Susini 5 Oct. 2012

L’Approche Réactive/Synchrone
74

Les caractéristiques :
exécution découpée en instants logiques successifs
instant de durée nulle (réactivité : borne
temporelle, vérifier la rapidité de la machine)
parallélisme synchrone (horloge globale)
déterminisme (mêmes entrées => mêmes sorties)
exécution en mémoire bornée
analyse statique et vérification de propriétés
J.-F. Susini 5 Oct. 2012

Instants de durée nulle et parallélisme


75
J.-F. Susini 5 Oct. 2012

Instants de durée nulle et parallélisme


75

activation
J.-F. Susini 5 Oct. 2012

Instants de durée nulle et parallélisme


75

Inputs

activation
J.-F. Susini 5 Oct. 2012

Instants de durée nulle et parallélisme


75

Inputs

activation
Outputs
J.-F. Susini 5 Oct. 2012

Instants de durée nulle et parallélisme


75

Inputs Inputs

activation activation
Outputs Outputs
J.-F. Susini 5 Oct. 2012

Instants de durée nulle et parallélisme


75

Inputs Inputs Inputs

activation activation activation


Outputs Outputs Outputs
J.-F. Susini 5 Oct. 2012

Instants de durée nulle et parallélisme


75

Inputs Inputs Inputs

activation activation activation


Outputs Outputs Outputs

A1

A2

A3
J.-F. Susini 5 Oct. 2012

Instants de durée nulle et parallélisme


75

Inputs Inputs Inputs

activation activation activation


Outputs Outputs Outputs

A1

A2

A3
J.-F. Susini 5 Oct. 2012

Instants de durée nulle et parallélisme


75

Inputs Inputs Inputs

activation activation activation


Outputs Outputs Outputs

A1

A2

A3
J.-F. Susini 5 Oct. 2012

Instants de durée nulle et parallélisme


75

Inputs Inputs Inputs

activation activation activation


Outputs Outputs Outputs

A1

A2

A3
J.-F. Susini 5 Oct. 2012

Les automates explicites


76

Assurent une exécution déterministe et en temps nul :


le passage d’un instant se résume à choisir la transition
en fonction de l’événement d’entré et de l’état du
système
Ne passe pas aisément à l’échelle : explosion
combinatoire malgré les techniques de minimisation
Approche non modulaire : un automate ne se combine
pas avec un autre pour produire une automate plus
complexe
Le format intermédiaire OC
J.-F. Susini 5 Oct. 2012

Représentation en circuits
77

Modélisation possible par un système d’équation


booléennes correspondant à une traduction en circuits
Traitement de systèmes beaucoup plus complexes
que par la solution des automates
Code généré moins efficace => Nombreuses
techniques d’optimisation pour le code généré
Génération de circuits => “Les électrons calculent en
parallèle”
Les formats intermédiaires DC ou SC (ensemble
d’équations booléennes et de registres)
J.-F. Susini 5 Oct. 2012

Les langages synchrones


78

Fournir des abstractions permettant de parler du temps


dans un programme
proposer une sémantique mathématisée des
constructions séquentielles, parallèles, de la notion
d’absence et de simultanéité
simplifier la sémantique temporelle (abstraction
temps logique) et proposer des constructions
permettant de structurer la programmation temporelle
permettre un typage temporel des programmes par
des calculs d’horloges

éliminer les bugs temporels


J.-F. Susini 5 Oct. 2012

Les principaux formalismes


79

Orienté flots de données : L’environnement est un


ensemble de flôts (variables ayant une valeur définie à
chaque instant)
Lustre (fonctionnel)
Signal (relationnel)
Lucid Synchrone (fonctionnel, ordre sup)
Orienté contrôle : L’environnement est un ensemble de
signaux caractérisés par leur présence ou leur absence à
chaque instant
Esterel (impératif)
StateCharts (graphique)
SyncCharts, Argos (graphique)
J.-F. Susini 5 Oct. 2012

L’Approche Réactive/Synchrone
80

Points forts :
• grande puissance expressive et sémantique
formalisée
• couplage avec outils de preuves et de validation
• production de circuits ou automates => efficacité
• compilation vers hardware ou software d’un même
code
Points faibles :
• causalité : obstacle à la modularité
• pas d'objets (sauf solutions particulières comme
Esterel ++)
• pas de création dynamique (analyse statique)
J.-F. Susini 5 Oct. 2012

Esterel
81

Crée à l’École des Mines de Paris et l’INRIA Sophia-


Antipolis (projet commun : MEIJE, G. GONTIER, G.
BERRY)
Distribution commerciale : Esterel Technologies avec le
produit Esterel Studio (SyncCharts I3S, C. ANDRE)
Orientation, spécification et vérification de circuits, SoC,
intégration d’IPs
génération automatique de VHDL, C, System C
J.-F. Susini 5 Oct. 2012

Esterel
82

Langage impératif orienté contrôle


instructions d’ordonnancement : séquences, boucles,
composition parallèle, pause, …
instructions événementielles : attente de signaux,
tests de configurations de signaux, préemption, …
Programmation modulaire (modularité descendante)
Signaux gérés en entrée et/ou sortie, purs ou valués
(possibilité de restriction de portée et fonction de
combinaison)
Gestion de tâches asynchrones
J.-F. Susini 5 Oct. 2012

Esterel
83

nop : nothing
Séquence : P ; Q
Parallélisme : P || Q
fin d’instant explicite : pause, halt
boucles : loop P end, repeat exp times P end
affectation X:= 1
appel de procédure : call P (X1,X2)(s1,s2)
emission : emit S
attente : await S , await immediate S
test : present S then P else Q end
déclaration locale : signal S in P end
préemption : abort P when S, weak abort P when S
J.-F. Susini 5 Oct. 2012
Un exemple : ABRO 23
Exemple ABRO
Spec : Emettre le signal de sortie O dès l’occurrence des deux signaux
84
d’entrée A et B. Recommencer à chaque occurrence du signal
On émet O dès que A et B sont reçus et on recommence
d’entrée R.

dès que R est reçu


module ABRO:
input A, B, R;
module ABRO
output O;
input A,B,R;
output O;loop
[ await A || await B ]; R R
AB̄ R̄ B ĀR̄
loop emit O; R
AB R̄/O
each A
[await R || await B];
emitendO;module B R̄/O AR̄/O

each R

end

Compilation en automate explicite (format OC)


Compilation en circuit séquentiel (format SC)
J.-F. Susini 5 Oct. 2012

Lustre
85

Crée au laboratoire VERIMAG de Grenoble (P. Caspi,


N. Halbwachs)
Distribution commerciale : Scade, Esterel Technologies
(Airbus, Schneider Electric, Dassault Aviation, Thalès,
…)
Lustre et Scade sont deux souches différentes qui
s’influencent l’une l’autre -> Lustre v6 noyau de Scade
Orientation, spécification et vérification de lois de
commandes : avionique, automobile
compilateur industriels certifiés (DO-178B)
J.-F. Susini 5 Oct. 2012

Lustre
86

Langage déclaratif fonctionnel orienté flots de


données
déclaration et arithmétique sur les flots : réseau
d’opérateur produisant et consommant des flots à
chaque activation
x = 0 -> 1 + pre(x)
gestion d’horloge par l’opérateur when
Programmation modulaire fonctionnelle : les noeuds. Un
nœud prend des flots en entrée et produit des flots en
sortie
Flots typés à la déclaration
J.-F. Susini 5 Oct. 2012

Lustre
87

affectation d’un flot : X = …


Initialisation : flot -> …
Parallélisme : EQ1 ; EQ2
valeur précédente : pre
alternative : if then else
gestion d’horloge : when
valeurs booléennes (bool) : true, false, or, not, and, xor, #
valeurs numériques : (int, real) +, -, *, /, div, mod, <>, <,
>, <=, >=, int, real
appel d’un nœud : MyNode(F1,F2)
tuples : construction explicite : (F1, F2) = (EQ1, EQ2)
(s,u ) = MyNode(F1,F2);
J.-F. Susini 5 Oct. 2012

Calculs d’horloge
88

Vérifie le typage temporel des programmes et assure


l’absence de dépendance instantanée des expressions sur
les flots
x = 0 -> x + 1
Vérifie que les horloges des flots d’une expression sont
compatibles
Assure une exécution en mémoire bornée et permet
d’évaluer les contraintes temporelles acceptables par le
système
J.-F. Susini
An example system of equations
5 Oct. 2012
The Dataflow Style—Lustre, Signal Lustre
The Imperative Style—Esterel Flows
Exemple Clocks

89
The Dataflow Style
node Control (U : float)
returns (X : float);
var S : float;
Xt+1 = Ut+1 ⇥ sin(Xt + St+1 St )
let St+1 = cos(St + Ut+1 )
X = 0. -> (U * sin(pre(X) + S - pre(S)));
S = 1. -> cos(pre(S) + U);
In a tel
graphical representation:
J.-F. Susini 5 Oct. 2012

Signal
90

Crée à l’IRISA (Rennes), projet Ep-Atr (P. Le Guernic,


A. Benveniste)
Polychrony est le compilateur du domaine publique
(ESPRESSO, J.-P. Talpin)
Distribution commerciale : SYLDEX (TNI-Valiosys)
Domaine d’application : Avionique, Énergie,
Automobile, Télécommunication
J.-F. Susini 5 Oct. 2012

Signal
91

Langage déclaratif relationnel orienté flots de données


(généralisation de Lustre)
chaque port a sa propre horloge (event/horloge et
signaux)
déclaration d’équations décrivant des valeurs de flots
ou des contraintes sur des signaux (event)
(| X := ... | X^= Y |…|)
Programmation modulaire : processus. Les paramètres
sont des flots constants, en entrée ‘?’ ou en sortie ‘!’
Flots typés à la déclaration
J.-F. Susini 5 Oct. 2012

Signal
92

affectation d’un flot : X := (X$ init 0) + 1


Horloge : X ^= Y ^+ Z, when avec ^horloge (event)
default (mélange)
Parallélisme : (| EQ1 | EQ2 |)
valeur précédente : X $ N
initialisation : init
déclaration des flots locaux : where ... end
combinaisons booléennes (bool) : AND, OR, NOT, ...
valeurs numériques : (integer, real, dreal, ....) +, -, *, /, **,
modulo, fonctions, ...
comparaison : =, /=, <, >, <=, >=, int, real
J.-F. Susini 5 Oct. 2012

Formalismes graphiques
93
Programmation synchrone graphique
Statecharts, Argos, SyncCharts

TopReq

Top/Question Req/Ok
#/Received #/Alarm Question/
Received

Req/Oqp

<2> <2>

Question, Received
15 / 22
J.-F. Susini 5 Oct. 2012

Autres langages synchrones


94

Lucid Synchrone (M. Pouzet LRI ) : langage fonctionnel au


dessus de ocaml, expérimentation pour Lustre -> foncteur,
tableaux (itérateur), récursion
Automates de Modes (F. Maraninchi, IMAG)
Polis (Berkley) : Environnement de développement (co-
design) Hardware/Software pour Systèmes Embarqués
ECL (Esterel C), Jester (Java à la Esterel), Reactive C,
SugarCubes/Junior, Reactive ML, …
Les outils de l’automatique : MathLab/Simulink/StateFlow
(MathWorks), SciLab/Scicos (INRIA), Ptolemy I et II
(Berkeley)
J.-F. Susini 5 Oct. 2012

L’Approche Réactive/Synchrone
95

Références:
• On the Development of Reactive Systems, D.
Harel, A. Pnueli, Proc. NATO ASI Series F, Vol.
13 477-498, Springer-Verlag, 1985
• StateCharts: A visual Approach to Complex
Systems, D. Harel, Science of Computer
Programming, vol. 8-3 p.231-275, 1987
• Synchronous Programming of Reactive Systems,
Nicolas Halbwachs, Kluwer Academic
Publications, Amsterdam, 1993
J.-F. Susini 5 Oct. 2012

L’Approche Réactive/Synchrone
96

• Programming real-time applications with


SIGNAL, P. Le Guernic, T. Gautier, M. Le
Borgne, M. Le Maire, INRIA Research Report
RR-1446, 1991
• A functional extension to LUSTRE, P. Caspi, M.
Pouzet, International Symposium on Languages
for Intentional Programming (ISLIP), Syndey,
Australie, Mai 1995
• The Esterel Synchronous Language: Design,
Semantics, Implementation, G. Berry, G.
Gonthier, Science of Computer Programming,
19(2),1992
J.-F. Susini 5 Oct. 2012

L’Approche Réactive/Synchrone
97

• The Esterel v5 Primer, Gérard Berry, http://


www.inria.fr/meije/esterel
• The Argos Language: GraphicalRepresentation
of Automata and Description of Reactive
Systems, F. Maraninchi, Proc. IEEE International
Conference on Visual Languages, Kobe, 1991

• http://www.inrialpes.fr/synalp/

Vous aimerez peut-être aussi