CEG4561/CSI4541 – Conception de systèmes temps réel

Transcription

CEG4561/CSI4541 – Conception de systèmes temps réel
CEG4561/CSI4541 – Conception de systèmes temps réel
Chapitre 4 – Outils de spécification et de validation des systèmes en temps réel
4.1 Introduction
Question : Pourquoi des outils de spécifications et de validation?
4.1.1. Conception d’un système temps réel
• Description et expression des contraintes temps réel
• Représentation simultanée de l’évolution logique et temporelle du système
• Prédiction et estimation des temps de réponse
• Sélection de l’architecture, du matériel et du logiciel
• Le matériel conditionne les coûts de production
• Le logiciel conditionne les coûts de développement
• Compromis et équilibre matériel-logiciel
Outils de spécifications et de validation
4.1.2. Spécifications et cahier des charges
Tout système temps réel doit faire l’objet d’un cahier des charges ou spécification. Les problèmes
techniques sont dénotés cahier des charges du système, ils sont solutionnés comme suit :
Position du problème
Étude et définitions, cahier
des charges
Analyse fine du problème
Implémentation de la solution
Essais et tests
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
1
Rédaction d’un cahier des charges :
La rédaction doit faire apparaitre :
a. Les relations opératrices dans une expression claire sous forme graphique, les textes
restant souvent imprécis, surtout lorsque le système évolue sur des voies parallèles.
b. L’importance des spécifications, qui sont de trois ordres :
- Les spécifications fonctionnelles :
- Les différentes fonctions que doit assurer le système doivent être décrites d’une
manière claire et précise.
- La chronologie des actions doit être conforme au processus.
- Faire apparaitre la sécurité de fonctionnement qui ne dépend pas de la
technologie.
- Les spécifications technologiques :
- Ont un aspect physique et technique.
- Les spécifications opérationnelles :
- Utiliser le retour de service si le système a déjà fonctionné pour améliorer la
fiabilité, élimination des pannes, facilité de la maintenance, etc.…
4.1.3 Place de la simulation dans l’étude des systèmes temps réel
La simulation est un processus qui consiste à :
- Concevoir un modèle du système (réel) étudié,
- Mener des expérimentations sur ce modèle (et non pas des calculs),
- Interpréter les observations fournies par le déroulement du modèle et formuler des décisions
relatives au système.
Outils de modélisation et de validation
4.1.3.1. Méthodologie générale
On distingue classiquement quatre phases distinctes : La modélisation (représenter le
comportement du système), la programmation, l'expérimentation et l'interprétation des résultats
(accompagnée d’actions).
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
2
(a) Modèle conceptuel : Le modèle n'est qu'une approximation du système, il est conditionné par
l'objectif de l'étude.
(b) Expérimentation : Il s'agit de construire des théories, ou hypothèses, qui prennent en compte
le comportement observé.
Note : Le passage du système au modèle conceptuel est une étape essentielle pour la simulation.
4.1.3.2. L’étape de modélisation
L’étape de modélisation est une phase essentielle à la simulation. Différents points doivent être
abordés :
• Définir l'objectif de la modélisation (lié au cahier des charges) : Pourquoi modélise-t-on?
Qu'étudie-t-on ? Que veut-on améliorer, ou faire ?
• Définir les éléments du système (via la réalisation d'une fonction, ou d'un processus) et les
limites du système (les entrées, les sorties).
• Définir les interactions entre ces éléments (hiérarchie).
• Définir la dynamique du système (entités qui circulent entre les éléments, comportement du
système au cours du temps).
• Abstraction (choisir les éléments du système pertinents pour l'étude).
• Formalisation, conceptualisation : Modèle mathématique, modèle logiciel (Esterel, Simulink),
modèle graphique (réseaux de Petri, Grafcet, Automates).
4.1.4 Notions sur les Automates finis
• Système à événements discrets avec variables dans {0,1}
• Les variables internes "codent" des états
- Un état par variable pour rester simple
- Y1 = 1 pour l'état 1, Y2 = 1 pour l'état 2 etc... (les autres Yi = 0)
• On se restreint à un ensemble fini d'états
• Dans un état on est "réceptif" à un petit nombre de variables d'entrée
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
3
4.1.4.1 Définition :
C'est un triplet (E, Y, F)
• Y : Ensemble fini d'états
• E : Ensemble fini d'entrées
• F : fonction "états suivants", F : Y x E → Y
Y = {Y1, Y2, Y3, Y4, Y5, Y6}
E = {E1, E2, E3, E4, E5}
A chaque instant un seul Yi = 1 (état courant) tous les autre sont = 0
4.1.4.2. Exemple pratique :
• Notion de séquence : le Pas 1 avant le pas 2,
• Un élément mémoire par pas
4.1.4.3. Limite des automates finis :
a. Explosion combinatoire des états
b. La complexité des systèmes à événements discrets vient de :
• coopération : les automates décrivent des processus ayant un but commun
• compétition : les automates partagent des ressources
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
4
c. Pseudo parallélisme - entrelacement (interleaving)
• les événements sont tous ordonnés (ordre total), temps linéaire
d. Parallélisme vrai
• évolutions simultanées des processus, indépendance entre des horloges locales
• les événements ne sont reliés que par des relations d'ordre partiel
e. Risque de blocage mortel, incohérence dans les communications
D’où l’idée des Réseaux de Petri
Idées de départ de Carl Adam Petri (1960-1962)
• Un ensemble d'automates à états finis qui communiquent
• Avoir à la fois la représentation des automates (indépendance des évolutions internes) et celle
des communications par les mêmes primitives (communications asynchrones par échange de
messages, communication synchrones par rendez-vous, synchronisations, ressources partagées)
• Graphes avec 2 types de nœuds "états" et "transitions"
Histoire :
• 1962 thèse de Carl Adam Petri à Darmstadt, Bonn
Domaines d’application :
• 1977 Systèmes de production, Automate Programmable Industriel, Grafcet
• 1980 Évaluation des performances, simulation à événements discrets
• 1980 Validation de protocoles de communication
• 1986 Systèmes temps réels, systèmes distribués, génie logiciel
• 1986 Systèmes d'information, gestion, interfaces homme-machine
• 1989 Modèles de raisonnement, planification
4.2 Introduction aux réseaux de Petri
Note : Pour une introduction aux réseaux de Petri et aux GRAFCET, voir les annexes du chapitre
IV (partie 1 : RdP, partie 2 : Grafcet)
4.3 Introduction aux GRAFCET
Note : Pour une introduction aux réseaux de Petri et aux GRAFCET, voir les annexes du chapitre
IV (partie 1 : RdP, partie 2 : Grafcet)
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
5
4.4 Introduction au langage SDL (Specification and Description Language)
4.4.1 Principes de l’approche orientée modèle
L’approche orientée modèle :
• PIM: Platform Independent Model
• PDM: Platform Definition Model
• PSM: Platform Specific Model
L’intérêt de la démarche est de transformer
le modèle abstrait (PIM) à l’aide de la
définition de la plateforme (PDM) pour
obtenir un modèle concret (PSM).
La plateforme PIM (Platform Independent Model) :
• Le modèle abstrait doit être indépendant de la plateforme d’implémentation,
• Le modèle abstrait doit pouvoir être traduit sur une plateforme d’implémentation,
• Pour cela on s’appuie généralement sur une machine virtuelle qui offre:
• un certain nombre de services,
• une sémantique suffisamment forte pour être expressive.
4.4.2 Définition du langage SDL
(Voir lien sur la page web du cours pour plus de détails)
• Le SDL est un standard de l’ITU (International Telecommunication Union) sous la référence
Z.100.
• Objectif est de décrire de manière non ambiguë les protocoles de télécommunications afin
d’assurer l’interopérabilité des équipements,
• Utilisé par l ’ETSI (European Telecommunications Standards Institute) pour décrire les
protocoles de télécommunications (X25, GSM, UMTS…),
• SDL est mis à jour tous les 4 ans, on admet que la première version mature du langage date de
1988.
• Les modèles SDL sont indépendants de l’implémentation,
• Le SDL définit une sémantique forte,
• Le SDL intègre des types de données abstraits :
Les types de données abstraits SDL offrent les types de base comme INTEGER, REAL,
CHARSTRING et des types structurés comme les structure (STRUCT), les énumérés
(LITERALS), les constantes (SYNONYMS). La syntaxe ressemble à celle du Pascal, par
exemple une assignation s'écrira ':='.
• Orienté temps réel événementiel,
• Graphique,
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
6
• Orienté objet depuis sa version de 1992: SDL’92.
• Les modèles SDL peuvent être informels (une action peut être décrite en langage naturel)
• Les modèles SDL peuvent être incomplets (les opérateurs sont définis à l’extérieur du modèle)
• Les modèles SDL peuvent introduire une certaine forme d’indéterminisme (opérateur ANY)
• Les modèles SDL peuvent être formels (complet et non ambiguë)
• La sémantique et les services intrinsèques au langage permettent de définir une SDL virtual
machine qui répond à la définition d’un Modèle Indépendant de la Plateforme (PIM).
• La définition des interfaces des opérateurs et l’implémentation des services SDL définissent le
modèle de la plateforme (PDM),
• Il est alors possible de générer le modèle d’implémentation spécifique (PSM) comme par
exemple la combinaison d’un langage d’implémentation (C/C++), d’un exécutif temps réel
(RTOS), et de drivers sur la cible (opérateurs).
4.4.3Avantages du SDL
• Code C: 35 à 50 fautes par 1000 lignes
• Code SDL: 8 fautes par 1000 lignes
• Réduction globale du cycle de développement de l’ordre de 35%
• Réduction de près de 50% dans la branche gauche du cycle en V
• Réduction moindre dans la branche droite du fait du décalage avec la réalité technique
Remarque : Des années de pratique ont permis de mesurer quantitativement les gains apportés
par l’utilisation du SDL
4.4.4 Principes généraux
- Décomposition arborescente
System, block, substructure, process, procedure
- Communication
- Canaux de communication (canaux et routes)
- Signaux avec paramètres optionnels
- Comportement dans les processus et les procédures
- Typage des données (ADT : Abstract Data Type)
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
2
a) Le system
- Structure
block, canaux de communication
- Déclaration des signaux, des types
b) Le block
- Décomposition arborescente
Substructure
- Machine à état fini
processus
1 ou plusieurs instances, un PID par instance
(i,j) : création statique de i instances, et j nb max de création dynamique
d’instances
Exécution parallèle des processus
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
3
- Communication par les routes
- Déclarations
Signaux internes
procedure, types
c) Description du comportement des processus
• Etat
– Un état de départ obligatoire
– Pas d’état hiérarchique
– Pas d’états concurrents
– Un état de fin
• Transition
– Signal ou garde déclenchant
– Corps
• Appel de procedure, task
• Alternatives
• Émission de signaux
– Retour dans un état
• Identique ou différent
• Hypothèse RTC « Run To Completion »
– i-e transition non préemptible
d) Description des processus
- Transition
- (1) un signal non attendu est perdu sauf si sauvegarde explicite (save) du signal
- (2) transition spontanée
- (3) transition continue
- (4) garde
- (sauve s1 tant que x<3)
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
4
- Facilité d’écriture
- Tous les états, tous les signaux
e) Les symboles disponibles sont les suivants:
4.4.5 Définition du langage SDL-RT
(Voir lien sur la page web du cours pour plus de détails)
SDL-RT (Specification and Description Language - Real Time) est l’extension temps réel du
SDL, L’extension temps réel introduit les caractéristiques qui manquaient à SDL, comme les
manipulations de sémaphores et le langage C pour l’embarqué, et elle les combine avec les
avantages du langage original : représentations graphiques, orientation objet, précision.
Note : SDL-RT est gratuit et téléchargeable via le site web http://www.sdl-rt.org
.
.
.
Note : Pour continuer cette introduction, je vous renvoie vers la page web du cours.
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
5
4.4.6 Exemple de comportement
Le comportement est décrit graphiquement sous forme d'une machine d'état étendue.
Explication :
MyVariable de type INTEGER est la seule variable locale au processus. La première transition
est la transition start qui initialise la variable locale. Un message de demande de connexion est
envoyé (conReq), un timer de 5 secondes est démarré (conReqTimer), et l'automate se met dans
l'état connecting. Dans l'état connecting si le timer claque (ce qui est l'équivalent de la réception
d'un message) on renvoie la demande de connexion jusqu'à 10 fois. Si on reçoit une confirmation
de connexion, l'automate passe dans l'état connected. C'est un scénario typique dans les
protocoles de télécommunications.
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
6
4.4.7 Exemple pratique :
Description en langue humaine :
Une machine à café fournit à l`utilisateur un verre de café ou un verre de thé, en supposant que le
client a inséré les pièces de monnaie nécessaire pour ça.
La machine à café peut accepter des pièces de monnaie de valeur 10 ou 5, où une pièce de 5 est
insérée pour avoir un verre de thé et la pièce de 10 pour un verre de café.
Voici les différents scénarios à considérer pour le fonctionnement correct du system de la figure
ci-dessous.
1. si on insère une pièce de 10 et on appuie sur le bouton café alors la machine fournit un
verre de café.
2. si on insère une pièce de 10 et on appuie sur le bouton thé alors la machine fournit un
verre d’eau chaude pour le thé, plus le reste de la monnaie.
3. si on insère une pièce de 5 et on appuie sur le bouton café alors la machine retourne la
pièce insérée et n’accepte pas la commande.
4. si on insère une pièce de 5 et on appuie sur le bouton thé alors la machine fournit un verre
d`eau chaude pour le thé.
Café
10
00
Thé
5
Machine à café
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
7
Description en langage SDL :
Un système SDL est composé de blocks fonctionnels et chaque block peut être décomposé en
sous-blocks et ainsi de suite. Le block de plus bas niveau est composé de un ou plusieurs
processus qui sont décrits sous forme de machines d'états. Voici une description du système en
SDL.
System coffeemachine
Customer
CoffeeMachine
SIGNAL CupOfCoffee, CupOfWater,
ReturnChange;
SIGNAL Coffee, Tea, Coin;
Client : Customer
[Coffee, Tea,
Coin]
[CupOfCoffee,
CupOfWater,
ReturnChange]
CM :
CoffeeMachine
Sr1
Les composantes du système
Les processus de l'architecture sont connectés entre eux à l’aide de routes (canaux) qui portent les
différents messages (ou signaux) qui sont échangés entre les processus.
Block CM
SIGNAL FillWater, WaterOK,
FillCoffee CoffeeOK, HeatWater
Warm;
C:
Controler
Controler
[list1]
Hardware
[list2]
Sr2
H:
Hardware
Processus composant le bloque machine à café
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
8
Le comportement est décrit graphiquement sous forme d'une machine d'état étendue.
Idle
waitFill
FillCoffee
FillWater
CoffeeOk()
WaterOk()
Comportement de la partie Hardware
Idle
Coin(value)
value
[05]
Paidfive
[10]
[else]
Paidten
Idle
Comportement de la partie Contrôleur
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
9
Paidfive
Tea
FillWater()
MakingTea
Coffee
ReturnChange
Idle
Comportement de la partie Contrôleur (suite)
Paidten
Tea
ReturnChange()
ReturnChange()
Coffee
FillWater()
MakingCoffe
e
MakingTea
Comportement de la partie Contrôleur (suite)
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
10
MakinTea
MakinTea
WaterOK
WaterOK
HeatWater
HeatWater
WaterforTea
Nboftea=nboftea + 1
Idle
Comportement de la partie Contrôleur (suite)
MakingCoffe
e
WaterforCoffee
WaterOK()
CoffeeOK()
FillCoffee
HeatWater
WaterforCoffee
CoffeeandWater
CoffeeandWater
Warm
CupOfCoffee
Nbofcoffee=nbofcoffee + 1
Idle
Comportement de la partie Contrôleur (suite et fin)
Chapitre IV - CEG4566/CSI4541 – RNM – SITE – uOttawa – Hiver 2013
11