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