CVAR : projet C est l train fou!!! Rapport de fin de projet



Documents pareils
INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

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

IV- Comment fonctionne un ordinateur?

Cours de Systèmes d Exploitation

L exclusion mutuelle distribuée

Application 1- VBA : Test de comportements d'investissements

1 Recherche en table par balayage

Robot de Téléprésence

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

Guide de l utilisateur ArpentGIS-Trajet 1.2 ArpentGIS-Expert 1.4

Guide de l administrateur DOC-OEMCS8-GA-FR-29/09/05

Guide d installation de Java et des pilotes de lecture des supports

Le jour et ses divisions

Tutorial et Guide TeamViewer

TUTORIEL Qualit Eval. Introduction :

VidZone, qu est-ce que c est? INSTALLATION DE VidZone

Network musical jammin

ORIENTATIONS POUR LA CLASSE DE TROISIÈME

Je les ai entendus frapper. C était l aube. Les deux gendarmes se tenaient derrière la porte. J ai ouvert et je leur ai proposé d entrer.

Rapports d activités et financiers par Internet. Manuel Utilisateur

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

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

Guide d utilisation de PL7 Pro Récupérer ou transférer un programme

Competence Management System (Système de Gestion de Compétences)

Baladeur Santé VITAL'ACT

e-marque Traitement des fichiers

1. Présentation du TP

ndv access point : Utilisation

TER Licence 3 Electronique des Télécoms Transmission GSM

Messages d'erreurs. Redémarrez votre PC en cliquant sur Démarrer, en sélectionnant ensuite Arrêter puis en cochant Redémarrer

Physique Chimie. Utiliser les langages scientifiques à l écrit et à l oral pour interpréter les formules chimiques

Solution de Pilotage des Activités de Service

Chapitre 4 : Exclusion mutuelle

wezee Disk Wifi Hard Drive Guide d installation rapide

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

Modem LG LDU-1900D. Guide d utilisateur. LG Electronics

Solution logicielle pour le pilotage et l ERM. Journées d études IARD 26 mars mars 2010

COMMUNICATION PC/MINITEL

Configuration de la Borne Interactive

COUR D APPEL DE LYON PROCEDURE INFORMATIQUE IMPRIMANTES. Imprimantes SAR de Lyon / Novembre 2007 Page 1 sur 14

Centrale d Alarme 32 zones sans fils

Journée technique "Matériels routiers et normalisation" 1

Vous avez plusieurs prises. ou + B. Vous n avez pas de prise à 6 pôles. 1 Préparez le matériel nécessaire.

Travaillez en toute liberté grâce à Internet

Comment évolue le Category

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

I / La démarche à suivre pour l installation de l application-crm

GÉNÉRATEUR D ACTIVITÉS «PAGE»

Partager sa connexion Internet via le WiFi avec Windows 8

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Données générales à propos de l Estonie

Création de Site Web. Atelier Cyber-Base Emploi Pays Beaujolais

SmartCaisse, depuis Prise de Commande IPhone, IPad (2, 3 et mini), IPod et tablette Android SmartCaisse

Procédure d utilisation de la fonction TELETRANSMISSION

DÉMATÉRIALISATION DES DOCUMENTS ET AUTOMATISATION DES PROCESSUS UN PREMIER PAS VERS LA BANQUE SANS PAPIER

Partager sa connexion Internet via le WiFi avec Windows 8

Structure fonctionnelle d un SGBD

PROGRAMME DE MESSAGERIE INSTANTANEE RAPPORT FINAL. Généralités Structure du code Détail de scénarios Précisions de fonctionnement

INSTALLATION MICRO-SESAME

Le pilotage des collaborations et l interopérabilité des systèmes d information Vers une démarche intégrée

Projet de Java Enterprise Edition

La Révolution Numérique Au Service De l'hôpital de demain JUIN 2013 Strasbourg, FRANCE

GUIDE D UTILISATION VOCALYS CW32 CENTRALE-TRANSMETTEUR

Carte Relais GSM (Manuel Utilisateur)

Nos Ateliers WII, PS3 et Kinect

Alcatel Si la carte IP-LAN maîtresse est hors service, tous les services VoIP (Passerelle H.323 et Téléphonie IP) sont indisponibles.

<Insert Picture Here> Solaris pour la base de donnés Oracle

Démarrer et quitter... 13

SmartClass+ Plateforme de gestion de classe. Qu importe le lieu, le moment, l appareil. ipad, Mac Android Windows Téléphones intelligents «AVEC»

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

Atelier " Gestion des Configurations et CMDB "

Installation Client (licence réseau) de IBM SPSS Modeler 14.2

Si vous choisissez de les utiliser avec les règles du marché financier, vous en profiterez autant quel que soit le nombre de joueurs.

DataEXchanger. Echangez en toute simplicité. Atelier Dex Etat des lieux Dex X. Présentation DEX X

GUIDE D INSTALLATION INTERNET haute vitesse

mode d emploi PROTÉGEZ LA VIE DE CEUX QUE VOUS AIMEZ 18 Sapeurs-Pompiers 15 Samu 112 N d urgence européen d urgence gratuits

Les pannes non bloquantes ou aléatoires :

Perspectives pour l entreprise. Desktop Cloud. JC Devos IBM IT Architect jdevos@fr.ibm.com IBM Corporation

Réseaux grande distance

Qui sommes-nous? Motivation Factory propose des solutions web

Quel aménagement choisir?

Orange Business Services. Direction de la sécurité. De l utilisation de la supervision de sécurité en Cyber-Defense? JSSI 2011 Stéphane Sciacco

Aide à l installation et à la migration en HelloDoc 5.60

Manuel de référence des commandes SMS Advisor Advanced

MANUEL DRIVELINK DRIVELINK

Votre partenaire de la fermeture :

Il ne vous reste plus qu à profiter de votre connexion. Citycable vous souhaite d agréables moments de surf.

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Christian Soutou UML 2. pour les. bases de données. Avec 20 exercices corrigés. Groupe Eyrolles, 2007, ISBN :

INSTALLATION MONOSITE

Fabien Pinckaers Geoff Gardiner. OpenERP. Tiny. Pour une. gestion d entreprise efficace et intégrée. Groupe Eyrolles, 2008, ISBN :

Chapitre 9 : Informatique décisionnelle

M A N U E L D I N S T R U C T I O N S

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

14. Introduction aux files d attente

Mise en œuvre d une solution de virtualisation

FICHE HRI806V. Avant propos

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

Circuit comportant plusieurs boucles

Transcription:

CVAR : projet C est l train fou!!! Rapport de fin de projet Benoît MERLET Matthieu MUFFATO Résumé Dans le cadre de l option Conception et Validation d Applications Réactives, ce projet consiste à piloter un circuit féroviaire électrique constitué de 16 tronçons, de 2 voies de garage, de 7 aiguillages indépendants et d un ensemble de signalisations bicolores. Sur ce circuit peuvent évoluer entre 3 et 5 trains, voire plus pour les plus courageux. Le circuit est contrôlé via un ordinateur sur lequel tourne un mininoyau temps réel, le noyau Yacoubat. Il s agit de produire un logiciel permettant de récupérer des informations via l interface COM du PC, de les analyser et d envoyer les informations de contrôle au dispositif, principalement pour commander les locomotives et les feux de signalisation. Cependant, il existe une alternative aux tests rééls effectués sur la maquette présente au foyer : Le simulateur du réseau développé pas un ancien élève sous le système d exploitation temps réél QNX. 1

1 Structures utilisées Au début de la réalisation de notre logiciel, nous exploitions grandement le code donné en exemple : train5. Cependant nous nous sommes vite rendu compte des limites de sa conception. Il fallait en effet donner en dur le circuit d un train tronçon après tronçon. Cette approche ne nous a pas paru des plus généralisable, notamment dans le cas de changements matériels sur le réseau. Nous avons alors essayé de réfléchir à un autre moyen de modéliser le réseau. Au lieu de nous focaliser sur l élément tronçon qui n est rien d autre qu un bout de piste entre deux réceptivités, nous avons pris l option de raisonner plus spécifiquement sur l élément connexion, mot barbare pour désigner un lien fictif entre deux tronçons. Grâce à cette astuce, nous pouvons faire en sorte que les trains que l on rajoute sur le réseau soient autonomes en ce sens qu ils choisissent eux-même leurs trajets en tenant compte des contraintes physiques du circuit (ne pas pouvoir tourner si les angles sont trop aigus) et des tronçons occupés (pour ne pas provoquer la plus grande catastrophe féroviaire du siècle). Voici un descriptif des différentes structures utilisées tout au long du code. Ces structures sont définies dans le fichier reseau.h et initialisées dans le fichier reseau.c. Structure Champs Description troncon num troncon numéro du tronçon pour y accéder dans le tableau global des tronçons connexion1 connexion2 liste des connexions que l on peut prendre à l extrémité 1 du tronçon liste des connexions que l on peut prendre à l extrémité 2 du tronçon 2

Structure Champs Description connexion tronc1 le troncon à l extrémité 1 de la connection recept1 tronc2 recept2 feu12 feu21 aiguill la réceptivité à l extrémité 1 de la connection le troncon à l extrémité 2 de la connection la réceptivité à l extrémité 2 de la connection le feu à allumer quand on va de tronc1 à tronc2 le feu à allumer quand on va de tronc2 à tronc1 la liste des aiguillages à positionner pour que le train puisse passer d un tronçon à l autre de la connexion pos aiguill Structure Champs Description la liste des positions des aiguillages précédents train id le numéro du train pour son pilotage sur le réseau troncon tronçon sur lequel se trouve le train sens sens de parcours du tronçon : 1 si on va de 1 vers 2 dans le troncon et 2 sinon Nous maintenons grace à ces structures un tableau (indexé par num troncon) de tous les tronçons libres et occupés du réseau. Ce tableau constitue une ressource partagée par tous les trains sur le réseau et son accès, en lecture ou écriture, est donc sujet à une exclusion mutuelle. 3

2 Fonctionnement Comme nous l avons dit au début, nous avons tout conceptualiser pour faire en sorte que les trains puissent choisir leurs chemins comme des grands (éventuellement aléatoirement dans le cas où ils ont plusieurs alternatives). La solution a donc été de créer un processus par train ainsi qu un processus de lecture de la ligne série. Comme on peut le voir dans le pseudo-code qui va suivre, nous avons donné plus d importance aux processus pilotant les trains. Le processus pilotant un train sur le réseau : TANT QUE vrai FAIRE récupérer la réceptivité r de fin du tronçon courant récupérer l évènement Er associé à r faire avancer le train attendre l évènement Er stopper le train P(MUTEX) choisir aléatoirement une connection c donnant sur un tronçon libre SI c existe ALORS reserver le tronçon à l autre bout de la connection c V(MUTEX) SI c n existe pas ALORS inverser le sens de marche du train SINON positionner les aiguillages pour pouvoir passer la connection c allumer le feu permettant de passer la connection c récupérer la réceptivité r de début du tronçon suivant récupérer l évènement Er associé à r faire avancer le train attendre l évènement Er stopper le train éteindre le feu permettant de passer la connection c P(MUTEX) libérer le tronçon que l on vient de quitter V(MUTEX) FAIT 4

Le processus pilotant la ligne série : TANT QUE vrai FAIRE purger la ligne série lire les réceptivités du réseau sur la ligne série SI des receptivités ont été activées ALORS envoyer les évènements correspondant aux réceptivités s endormir pour un temps fixé au départ FAIT Nous disposons également d un master process qui se charge d utiliser le noyau Yacoubat de façon à créer les évènements associés aux réceptivités, à initialiser la ligne série, à créer le processus censé la gérer, à créer le sémaphore permettant d implémenter l exclusion mutuelle, à initialiser le réseau, à y placer les trains et enfin à créer les processus pilotant les trains. Il se charge également de quitter le programme proprement en détruisant les processus et en fermant la ligne série 5