Examen Temps-Réel : Le langage synchrone Lustre (durée prévue : 2h00) (Seul le document «Rappel sur Lustre» est autorisé)



Documents pareils
Représentation d un entier en base b

Limites finies en un point

DÉRIVÉES. I Nombre dérivé - Tangente. Exercice 01 (voir réponses et correction) ( voir animation )

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Premiers Pas en Programmation Objet : les Classes et les Objets

Les arbres binaires de recherche

STAGE IREM 0- Premiers pas en Python

Les structures de données. Rajae El Ouazzani

Cours de Systèmes d Exploitation

UNIVERSITE D'ORLEANS ISSOUDUN CHATEAUROUX

Dimensionnement d une roue autonome pour une implantation sur un fauteuil roulant

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

Université de Sherbrooke, Département d informatique

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Théorème du point fixe - Théorème de l inversion locale

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

L exclusion mutuelle distribuée

Le langage C. Séance n 4

Introduction aux systèmes temps réel. Iulian Ober IRIT

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

TEPZZ A_T EP A1 (19) (11) EP A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G07F 7/08 ( ) G06K 19/077 (2006.

MODE OPÉRATOIRE. VI) Le projet mené dans le cadre de la technologie. Le projet porte sur la réalisation d une horloge CD.

TP : Gestion d une image au format PGM

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

TP 1. Prise en main du langage Python

Conception des systèmes répartis

Le prototype de la fonction main()

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Certification de l assemblage de composants dans le développement de logiciels critiques

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

JOURNEES SYSTEMES & LOGICIELS CRITIQUES le 14/11/2000. Mise en Œuvre des techniques synchrones pour des applications industrielles

Architecture des ordinateurs

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Acquisition et conditionnement de l information Les capteurs

RÈGLEMENT RELATIF À LA SÉCURITÉ DES VOYAGEURS. TC numéro 0-16 Approuvé le 31 mars, 2000 {R- 33}

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Correction TD algorithmique

Un ordonnanceur stupide

TD2/TME2 : Ordonnanceur et Threads (POSIX et fair)

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Document Object Model (DOM)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

SYSTÈME DE GESTION DE FICHIERS

Cours 1 : La compilation

Utilisation d objets : String et ArrayList

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

!-.!#- $'( 1&) &) (,' &*- %,!

Chapitre 1 Régime transitoire dans les systèmes physiques

V- Manipulations de nombres en binaire

Avis légal. I 2 FISCALLIANCE 2011 L Incorporation des Courtiers Immobiliers du Québec

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Le Collège de France crée une chaire pérenne d Informatique, Algorithmes, machines et langages, et nomme le Pr Gérard BERRY titulaire

Prise en main rapide

IV- Comment fonctionne un ordinateur?

I. Introduction aux fonctions : les fonctions standards

Exercice 1. Partie 1. Questions

Programmer en JAVA. par Tama

VIII- Circuits séquentiels. Mémoires

BILAN ROUTIER UNE RESPONSABILITÉ PARTAGÉE! 7 principales causes de collisions à Montréal. Portrait de la sécurité routière et de la circulation

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Définitions. Numéro à préciser. (Durée : )

Chap III : Les tableaux

Licence Sciences et Technologies Examen janvier 2010

OCL - Object Constraint Language

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Examen d informatique première session 2004

Compte rendu de LA37 B, TP numéro 1. Evolution de la température et du degrée d'hydratation

Salle de technologie

Fiche PanaMaths Calculs avec les fonctions sous Xcas

P E U G E O T A L E R T Z O N E S Y S T E M E D E N A V I GAT I O N S U R T A B L E T T E T A C T I L E

Resolution limit in community detection

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Cours de Génie Logiciel

TP1 : Initiation à Java et Eclipse

CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme?

Introduction à l étude des Corps Finis

CHAPITRE. Le mouvement en deux dimensions CORRIGÉ DES EXERCICES

EXCEL TUTORIEL 2012/2013

RENOVER LES FEUX TRICOLORES

1.6- Génération de nombres aléatoires

SUJET ZÉRO Epreuve d'informatique et modélisation de systèmes physiques

Algorithmique et Programmation, IMA

PROJET DE GESTION PORTEFEUILLE. Evaluation d une Stratégie de Trading

Corrigé des exercices sur les références

Centrale de surveillance ALS 04

PG-10 DÉPENSES DU CONSEIL, DES COMITÉS ET D AUTRES BÉNÉVOLES

Problèmes liés à la concurrence

CONCOURS EXTERNE 2012 POUR LE RECRUTEMENT D'AGENTS D'EXPLOITATION SPECIALISES 19 septembre 2012

Intégration et probabilités TD1 Espaces mesurés

Chapitre 10 Arithmétique réelle

Programmation Orientée Objet Java

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Le modèle de Black et Scholes

Développement décimal d un réel

L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante:

Transcription:

Examen Temps-Réel : Le langage synchrone Lustre (durée prévue : 2h00) (Seul le document «Rappel sur Lustre» est autorisé) N.B : Vos réponses sont à consigner sur le présent document. Exercice 1 : Question de compréhension (3 pts) 1.1 Le langage LUSTRE est défini sur le paradigme du synchronisme fort. Expliquer en quelques lignes cette notion. (1.5 pts) 1.2 Le langage LUSTRE associé à LESAR est une Technique Formelle. Quel est l'intérêt d'utiliser une Technique Formelle dans le cadre d'un développement de systèmes? (1.5 pts) Exercice 2 : Un petit programme (2pts) Ecrire les équations Lustre (et uniquement les équations) qui calculent la suite des 1/n 2 pour n variant de 1 à l infini (suite qui converge vers 2 /6). 1/2 10/01/2006

Exercice 3 : Question de compréhension (3 pts) Soit les programmes Lustre TEST1 et TEST2 suivants : node somme (X: int) returns (S:int); S = X -> X + pre(s); tel node TEST1 (X: int) returns (S:int); var B:bool; B = true -> not pre(b); S = current (somme(x when B)); tel node TEST2 (X: int) returns (S:int); var B:bool; B = true -> not pre(b); S = current (somme(x) when B); tel Soit le flot constant I = (1,1,1,1,1,1 ). Quelle sont les réponses de somme(i), TEST1(I) et TEST2(I)? somme(i) = (,,,,,,,, ) TEST1(I) = (,,,,,,,, ) TEST2(I) = (,,,,,,,, ) Exercice 4 : Calcul d horloges (3 pts) Soit le programme Lustre défini partiellement par node prog1 (B1, B2:bool ; H1:bool when B1 ; H2:bool when B2 ; X1:int when H1 ; X2:int when H2 ; Y:int when (B1 and B2)) returns (S : int when ) ; var Z1:int when ; Z2:int when ; Z3:int when ; Z4:int when ; Z1 = current(x1) ; Z2 = current(x2) ; Z3 = current(z1) + current(z2) ; Z4 =(current(z3) when (B1 and B2)) + Y ; S = current(z4) ; tel. 2/2 10/01/2006

Il manque dans ce programme les informations d horloge. Lorsqu elles existent, précisez les horloges de Z1 Z4 et S. (Note : pour indiquer qu un flot F est sur l horloge de base on peut écrire indifféremment «F : int» ou «F : int when true»). S : int when Z1: int when Z2: int when Z3: int when Z4: int when Exercice 5 : Cadence d'un noeud. L'opérateur When. (3 pts) On souhaite calculer la vitesse d un avion comme étant égale à M = racine((pt/ps) 1) où PT et PS sont des pressions mesurées à l extérieur de l avion, et «racine» la fonction racine carrée. En fonctionnement normal, PS est inférieure à PT tout en étant strictement positive. Cependant, en cas de défaillance d un des capteurs, il se peut que la valeur mesurée de PS devienne supérieure à PT ou devienne nulle. Il est impératif dans ce cas de retourner une vitesse M=0 sans provoquer une erreur d exécution (racine d un nombre négatif). On souhaite écrire un nœud LUSTRE calculant M selon la spécification ci-dessus et qui respecte cette exigence. 1.1Ecrire une équation définissant un flot de booléens B tel que B=true si PT est supérieur ou égal à PS et B=false si PS est différents de 0. (0.5 pts) B= 1.2Ecrire un noeud Frac() disposant de trois entrées réelles A, B, C et d'une sortie réelle S tel que : S=A/B C. (0.5 pts) 3/2 10/01/2006

1.3Ecrire le noeud MesureVitesse() respectant les spécifications données ci-dessus. Le prototype du noeud sera : (2 pts) MesureVitesse(PS,PT : real) returns (M : real) Vous utiliserez les noeuds racine(), Frac et la condition booléenne B. 4/2 10/01/2006

Question 4 Un croisement (6 pts) On souhaite automatiser un croisement ferroviaire (simplifié). On considère un croisement composé de deux voies à sens unique représenté figure 3 (les trains circulent toujours dans le même sens). L accès au croisement est protégé par deux feux Fi (i=1,2), un sur chaque voie. (Pour simplifier, on considérera que Fi est un flot booléen égal à vrai pour traduire que le feu est vert et égal à faux pour traduire qu il est rouge). D autre part, le croisement est précédé sur chaque voie par un capteur Ei (i=1,2). L arrivée d un train devant le croisement par la voie i provoque l activation de ce capteur. On supposera, pour simplifier que Ei est un flot booléen positionné à vrai tant que le train est bloqué devant le croisement, et qui repasse a faux dès que le train a franchi la capteur (pour simplifier, on suppose que les trains ont une longueur nulle). Enfin, un capteur C détecte la présence d un train dans le croisement lui-même. La présence d un train dans le croisement provoquera le positionnement à vrai de ce capteur, tandis que son absence le positionnera à faux (pour simplifier, on considérera que C est un flot booléen égal à vrai tant qu un train est présent dans le croisement). On demande d écrire en Lustre un programme gérant les feux F1 et F2 tel que : - toute collision dans le croisement entre deux trains circulant sur les voies 1 et 2 est impossible (sous réserve que les trains respectent les feux) - tout train se présentant devant le croisement recevra un jour l'autorisation de passer. Attention! Ce problème ne se ramène pas à une simple exclusion mutuelle. On doit en effet accepter le cas où deux trains, circulant sur la même voie (par exemple la voie 1), sont suffisamment proches pour que à un instant donné le premier soit dans le croisement tandis que le second arrive devant le feu F1. Il peut donc y avoir deux trains en attente du croisement (un sur chaque voie) tandis qu un troisième occupe le croisement comme indiqué figure 1. (On se s occupera pas du problème de risque de collision entre deux trains circulant sur la même voie). feu F2 zone d attente voie 2 feu F1 zone d attente voie 1 capteur E1 capteur E2 voie1 voie2 zone de croisement (incluant les deux voies) surveillée par le capteur C figure 3. 5/2 10/01/2006

6/2 10/01/2006

7/2 10/01/2006