Académique Documents
Professionnel Documents
Culture Documents
Ouassila Labbani-Narsis
1 ouassila.labbani@u-bourgogne.fr
Organisation et plan du cours
Organisation
3 CM (6h), 1 TD (2h) et 2 TP (8h)
Un contrôle de TD/TP + un partiel
Plan
Introduction
⚫ Rappel sur les systèmes temps réel
⚫ Systèmes réactifs critiques et approche synchrone
Le langage Lustre
⚫ Sémantique et description détaillée du langage
Vérification formelle de programmes Lustre
⚫ Techniques de vérification formelle
⚫ Utilisation de Lesar, un model-checker pour Lustre
Rappel sur le temps réel
données
Environnement
Système mesures
(ex : une chaîne de
informatique production, une
événements
réaction chimique…)
Caractéristiques
Le comportement d’un système temps réel dépend, non seulement
de l'exactitude des traitements effectués, mais également du
temps où les résultats de ces traitements sont produits
Caractéristiques
Un système temps réel ne possède pas les propriétés classiques
des programmes séquentiels (Indépendance du résultat produit par
rapport à la vitesse d’exécution et comportement reproductible)
Prévisibilité (predictability)
L’un des aspects importants des systèmes temps réel est la
prévisibilité du système
➢ Un système temps réel doit être conçu de telle façon que ses
performances soient définies dans le pire des cas
➢ La prévisibilité est ce qui permet de déterminer à l’avance si un
système va respecter ses contraintes temporelles
Système informatique temps réel
Déterminisme
Le déterminisme est le but que l’on cherche à atteindre afin de
prédire le comportement temporel d’un système temps réel : il
s’agit d’enlever toute incertitude sur le comportement des activités
individuelles et sur leurs comportements quand elles sont mises
ensemble dans le contexte d’exécution du système
Système informatique temps réel
De manière générale …
Le système temps réel est un système en interaction
continue avec son environnement
⚫ Souvent complexes
⚫ Les performances (temps d’exécution) font partie de
l’analyse de l’exactitude du système
⚫ Recours à des outils et méthodes de conception
spécifiquement adaptées
Ennemi numéro 1 : le bug
Si on les laisse faire les bugs poussent plus vite que la
loi de Moore!
⚫ Déterminisme
Implicite en CC et FSMs
Qui voudrait d’une voiture ou d’un avion non-déterministe ?
Peut être relâché pour certains cas: Web, lecture MP3, …
⚫ Distribution
Séparation des fonctions et liaisons
Localisation des informations
Redondance pour supporter les pannes
Différents types de systèmes
Classification des systèmes
Problématique
Accroissement exponentiel de la complexité des
systèmes informatiques
Beaucoup de problèmes !!
On se concentre sur la fonctionnalité du système
Système réactif temps réel
Temps réel ??
⚫ Les E et les S alternent dans le temps
Mémoire bornée :
⚫ On doit calculer les sorties avec une mémoire finie, allouée à
l’avance (caractéristique essentielle des systèmes embarqués)
Conséquence immédiate :
⚫ Si est parfaitement déterminée par la séquence E1,E2,…Ei
i.e. i Si = (E1,E2,...,Ei)
Fonctionnalité d’un système
réactif
La fonctionnalité de tout système réactif est
(virtuellement) définie par :
ses entrées/sorties (E, S)
sa mémoire interne (M), avec sa valeur initiale M0
sa fonction de sortie :
Si = f(Mi,Ei)
sa fonction de transition :
Mi+1 = g(Mi,Ei)
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
Temps-réel ??
Temps de calcul < Temps de réaction de l’environnement
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
⚫ Il faudrait :
➔ Renforcer le contrôle,
➔ Corréler les temps d'exécution avec le temps réel,
➔ Rendre la sémantique déterministe
Monde concret
i1 i2 i3
Temps abstrait
I1 I2 I3
Temps concret
o1 o2 o3
O1 O2 O3
Mise en défaut de
I1 I2 I3 l'hypothèse
synchrone forte
Monde abstrait
Temps concret
O1 O2
Les langages synchrones
Principes communs
⚫ Conception avec un temps logique discret (synchronisme)
⚫ Communication synchrone idéale
⚫ Parallélisme de description
⚫ Génération de code simple et efficace
Différents styles
⚫ Flot de données déclaratif :
Textuel (Lustre, Signal, Lucid,…), 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)
Synchronisme fort ➔ Déterminisme
⚫ Les propriétés précédentes font que l’indéterminisme
est levé et que les actions peuvent s’exécuter
simultanément
⚫ Les langages synchrones sont linéaires et permettent
le vrai parallélisme
➔ On parle de déterminisme du langage
Notons que l’hypothèse de synchronisme nécessite que
le temps de réaction du système (à travers l’exécution
de ses processus) soit plus petit que l’intervalle de
temps qui sépare l’envoi de deux sollicitations, ou stimuli