1 Description du projet



Documents pareils
Vers l'ordinateur quantique

Avaya one-x Deskphone Value Edition Téléphone 1608 IP Guide de l'utilisateur

Guide de l'utilisateur du IP Audio Conference Phone BCM Business Communications Manager

MANUEL D'UTILISATION Téléphone Aastra 57i, PoE

MANUEL D'UTILISATION Téléphone Aastra 6753i, PoE

Compte-rendu de projet de Système de gestion de base de données

Télécom Nancy Année

constitue le point d'entrée pour accéder au paramétrage de votre poste.

Application Fitness V4 by newgen medicals

Fiche des fonctions du téléphone Business Communications Manager

Téléphoner avec les téléphones IP DECT Gigaset PRO

Manuel Utilisateur Téléphone IP Thomson ST 2030

GUIDE DE L UTILISATEUR

Module SMS pour Microsoft Outlook MD et Outlook MD Express. Guide d'aide. Guide d'aide du module SMS de Rogers Page 1 sur 40 Tous droits réservés

Guide d'utilisation du téléphone IP Thomson ST-2030 G

Systèmes de communications Aastra Poste Aastra Guide de l utilisateur

Votre poste e.950 PRESENTATION MISE EN SERVICE

Livre blanc Mesure des performances sous Windows Embedded Standard 7

Cisco 7940/ /7961. Fonctions téléphoniques

Téléphone de conférence MAX IP GUIDE DE L UTILISATEUR

Votre poste e.50 PRESENTATION

Guide rapide du téléphone de bureau Polycom VVX 300. Date du document : 27/01/14 Version du document : 1.0d

Guide de fonctions du téléphone du système SCI Norstar

Votre appareil est configuré en usine pour permettre d'envoyer immédiatement des SMS.

FORMATION A LA VENTE D'IP OFFICE

Changement de votre mot de passe

inviu routes Installation et création d'un ENAiKOON ID

Cours de Génie Logiciel

M55 HD. Manuel Utilisateur

Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2.

Guide d utilisation du service Virtual Assistant de Tango

L51W Guide de l application

Alcatel-Lucent 500 DECT Handset. Localisation and notification management Guide de Configuration

Date de diffusion : Rédigé par : Version : Mars 2008 APEM 1.4. Sig-Artisanat : Guide de l'utilisateur 2 / 24

X-Lite guide de configuration et d utilisation

Systèmes de communications Aastra Poste Aastra 5360ip. Guide de l utilisateur

Méthodes de développement. Analyse des exigences (spécification)

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne

Sophos Mobile Encryption pour Android Aide. Version du produit : 1.0

Guide d installation ATTENTION : A la découverte de votre téléphone

Activateur à clavier et moniteur HC/HS/HD/L/N/NT4608 Notice d emploi

Gestionnaire de procédure Guide rapide

Manuel de l'application SMS

Guide des fonctionnalités avancées de Cisco Jabber pour Windows 9.7

Guide d utilisation. Version 10

Séquence de découverte de SparkAngels Logiciel d entraide numérique

Alcatel OmniPCX Off ice Poste de réception

Manuel d'utilisation

MANUEL D UTILISATION (simplifié) DE LA CENTRALE LS-30

Éléments d'architecture des ordinateurs

Guide d'utilisation EMP Monitor

Nouveau! Accédez directement à vos messages vocaux, sans mot de passe, en faisant le nouveau code 9 8 * à partir du téléphone

Les diagrammes de modélisation

Guide de référence Konftel 300W

Conception de circuits numériques et architecture des ordinateurs

domovea Portier tebis

Traitement des appels Accès au pages Web Options utilisateurs

7 S'abonner aux notifications des nouveaux appels

Conception d'applications de base de données ios plus rapides Guide Pratique FileMaker

Alcatel OmniPCX Off ice Poste opérateur

HP Data Protector Express Software - Tutoriel 4. Utilisation de Quick Access Control (Windows uniquement)

HA2000 RTC Transmetteur téléphonique

ALFA INSTALLATION LECTEUR MESSAGES SMS SERVICE

Alcatel-Lucent OmniPCX Office. Poste opérateur

FlatBox. Système d Alarme de Sécurité GSM / Sans Fil

P3PC FRZ0. ScanSnap N1800 Scanner pour réseau Guide d utilisation de l'addiciel pour Google Documents

SCÉNARIO DE TD AUTONOME. Auteur(e) :Auteur : cap Établissement : UTC

Sophos Mobile Encryption pour Android Aide. Version du produit : 1.3

Alcatel Premium Reflexes. Alcatel OmniPCX Office ARCHITECTS OF AN INTERNET WORLD

Préleveur d'échantillons d eau automatique ELECTRO-MAGNUM /AQUAMAX 1 & 2 / SERVOTOP

LA BOX FIBRE DE SFR GUIDE D UTILISATION COMPLET (MAIS PAS COMPLEXE) SFR.FR

ScoopFone. Prise en main rapide

CENTRALE D ALARME SANS FILS

Documentation utilisateur. [EIP] TransLSF

Recherche dans un tableau

Business Talk IP Centrex. guide. web utilisateur. pour. les services standards

Guide Google Cloud Print

Alcatel Premium Reflexes

Mode d emploi Konftel 250

Exportation d'une VM sur un périphérique de stockage de masse USB

Alcatel Premium Reflexes

HiPath 2000 HiPath 3000 HiPath optipoint 410/420 S V6.0 economy economy plus standard. Mode d emploi

CL8400. Téléphone GSM Amplifié. Français

Gestionnaire de connexions Guide de l utilisateur

Tango go.box - Aide. Table des matières

Systèmes de communications Aastra Poste Aastra Guide de l utilisateur

Manuel d'utilisation Postes 4028IP/4029

Carte de référence rapide

TRACcess ekey. Référence rapide

Guide de démarrage rapide

Manuel de l'utilisateur CLAVIER ÉLECTRONIQUE LEVERSET AVEC PROGRAMMATION BLUETOOTH. ASSA ABLOY, le leader mondial en matière de solutions de porte

Manuel d'utilisation de Mémo vocal

Téléphones IP 712 et IP 706 ADTRAN Téléphones IP 650, IP 601, IP 501 et IP 430 ADTRAN Polycom

Manuel d utilisation du téléphone IP Cisco Small Business Pro SPA525G

CONFÉRENCE EUROPÉENNE DES MINISTRES DES TRANSPORTS EUROPEAN CONFERENCE OF MINISTERS OF TRANSPORT

Manuel d Utilisateur - Logiciel ModAFi. Jonathan ANJOU - Maud EYZAT - Kévin NAVARRO

Guide d utilisation. Gamme Telium. Application AMEX EMV x

Microsoft Application Center Test

Guide de démarrage rapide

Transcription:

Implantation d'un OS multi-processus pour téléphone cellulaire à l'aide d'automates À travers ce projet vous découvrirez les bases du fonctionnement d'un OS (Operating System = système d'exploitation) multi-processus. Et vous apprendrez à utiliser des automates pour concevoir un système robuste. 1 Description du projet L'objectif du projet est de réaliser un simulateur capable de faire fonctionner simultanément plusieurs automates et de l'utiliser pour concevoir une implantation robuste du mécanisme de gestion des diérents applications d'un téléphone cellulaire et de leurs interactions. L'utilisation d'automates oblige à spécier l'état de l'application pour chaque événement possible et évite les bugs du baby player où l'application entre dans un cas non spécié lorsqu'un enfant actionne au hasard les éléments de l'interface. On prend comme exemple le cas d'un téléphone portable mais on pourrait faire le même exercice sur le menu d'un site web ou toute autre interface. On considère un téléphone avec les fonctionnalités suivantes disponibles sur le clavier : 1. réglage du volume : +, - 2. lecteur mp3 : M lance le music player, P = (play,pause), S stop 3. appel : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 numérotation, eacer, C composer le numéro (c'est-à-dire appeler) 4. envoi de SMS : N rédiger un nouveau message, 0, 1, 2, 3, 4, 5, 6, rédaction (pour réduire l'alphabet on ne considère qu'un clavier numérique), eacer, V envoyer 5. A annuler l'action précédente Q quitter le menu actuel et revenir au précédent 6. 7. prise d'appel (vous ou votre interlocuteur) : D décrocher, R raccrocher 8. reception de SMS : L Lire, eacer 9. O on, F o et les événements suivants venus de l'extérieur sont aussi considérés comme des symboles de l'alphabet de l'automate : 1. (#) sonnerie signalant la réception d'un appel 2. (@) sonnerie signalant la réception d'un message 3. (D) l'un des deux correspondants a décroché 4. (R) l'un des deux correspondants a raccroché 7, 8, Ainsi, Σ = { +,-,M,P,S,0,1,2,3,4,5,6,7,8,9,E,C,N,V,A,Q,D,R,L,O,F,#,@,L,R} 1 9

Niveau de détails exigé dans le projet Dans cet exercice on ne s'intéresse pas aux fonctionnalités associées aux événements, ni au temps de réaction (pas de compteurs du temps écoulé) ; seuls nous importe le mode dans lequel se trouve le téléphone et la garantie qu'il ne se retrouve pas dans un mode dont on ne peut pas sortir, ni dans un mode non spécié. 2 Principe de fonctionnement On considére des automates dont les états sont des modes de fonctionnement et les transitions portent à la fois un événement déclencheur et une action. Par exemple voici une transition de l'automate du volume manager decrease Normal Send(mute) Mute qui indique que dans l'état Normal si on fait décroitre le volume (événement decrease), on eectue l'action Send(mute) qui génère et on envoie l'événement mute et on passe en mode Mute. Et voici une transition de l'automate du music player qui réagit à l'événement mute envoyé et passe dans l'état Pause si le volume est coupé. Notez que la transition ne génère pas de nouvelle action : Play mute Pause Enn, voici une transition de l'os qui lance l'automate music player (noté Aut mp ) lorsqu'on appuie sur la touche M qui provoque l'envoi de l'événement music. music Running Create(Aut mp ) Running 2.1 Les applications Chaque application est décrite par un automate qui dénit les réactions aux touches du téléphone et les interactions avec les autres applications. Dans notre simulation de téléphone cellulaire, il y a juste une application particulière qui est supposée déjà créée même lorsque le téléphone est éteint et qui réagit à la touche O, c'est-à-dire l'événement on. Les actions On considère trois types d'actions associées à une transition : aucune action, un envoi d'événement, une création d'automate Ce qui se décrit facilement par un type ocaml action 2

Les événements sont soit générés par une action Send soit provoqués par l'appuie sur une touche du téléphone Notez qu'une même touche peut générer plusieurs événements. Ainsi il est très courant sur un téléphone cellulaire que la même touche, disons P, qui gère les événements play et pause (et c'est très pratique). C'est à l'application de savoir comment interpréter ces événements en fonction de son mode courant. Lorsqu'on appuie sur P, elle génére les deux événements play et pause. Si le player est en mode Play, il réagit à l'événement pause et ignore l'événement play. Les états des automates correspondent aux diérents modes du téléphone qui comporte au minimum les modes suivants : 1. o, 2. on, 3. mp3, 4. numérotation, 5. appel, 6. rédaction sms, 7. envoi sms, 8. sonnerie tél, 9. sonnerie sms, 10. communication, 11. lecture sms, 12.... Le système complet est constitué de tous les processus actif. Le comportement de chaque processus est déni par un automate. Il doit être possible de créer plusieurs instances d'un même automate. 2.2 Fonctionnement du simulateur d'automates Votre implantation devra prendre en entrée un scenario sous la forme d'une séquence de caractères consitutée de symboles de l'alphabet du système (à la fois les touches du clavier et les événements extérieurs). Votre moteur de simulation devra se comporter de la manière suivante : 1. acher le mode/état courant (le nom du mode/état doit etre explicite) de chacun des processus actif, 2. lire/acher l'événement courant 3. faire réagir chacun des processus à l'événement courant : 3

(a) déterminer les transitions possibles (b) exécuter les actions correspondantes (création de processus et envoi d'événements) (c) mettre à jour l'état de chacun des processus 2.3 Visualisation Pour suivre l'évolution du système vous devez être en mesure d'acher à chaque transition du système : les processus actifs l'état courant de chaque processus les événements courants Si vous utilisez l'interprète ocaml il n'est pas utile de réaliser une fonction d'achage pour suivre l'état du système. Il sut de demander à l'interprète la valeur de la variable qui représente l'état du système. Exemple de présentation system = {input = [(Key 'm', [OS_event Music]); (Key '+', [Vol_event Inc]); (Key '-', [Vol_event Dec]); (Key '-', [Vol_event Dec]); (Key '+', [Vol_event Inc]); (Key 's', [Mp3_event Stop]); (Key 'f', [Phone_event Off]) ]; processes = [{aut = "mp3 player"; id = 5; current_state = Mp3_state PLAY}; {aut = "mp3 player"; id = 4; current_state = Mp3_state PAUSE}; {aut = "volume manager"; id = 3; current_state = Vol_state NORMAL} {aut = "os"; id = 2; current_state = OS_state RUNNING}; {aut = "phone"; id = 1; current_state = Phone_state ON}; ]} La variable system est ici un enregistrement à deux champs : input montre le scenario avec les événements associés à chaque touche processes montre l'état des processus actifs Conseil Pour tester votre automate il est plus simple de faire une version qui lit des événements/caractères entrés un par un au clavier ; il ne sera pas dile de l'étendre pour obtenir une implantation qui prend en entréé une chaine de caractère et qui est plus pratique pour une démo. 4

3 Consignes et évaluation du projet Plus votre implantation sera claire, lisible et puissante, meilleure sera votre note. On appréciera que votre implantation soit capable de gérer correctement plusieurs instances d'un même automate. En particulier plusieurs communications à la fois (avec mise en attente ou mode réunion), plusieurs music player ouverts simultanément, etc. Soyez à la fois créatifs (proposez un téléphone innovant) et réalistes (ne compliquez pas inutilement le moteur du simulateur). Et soignez votre codage. 3.1 À rendre Un document de quelques pages décrivant les spécicités de votre téléphone, les modes et les symboles utilisés une implantation en ocaml un jeu de tests qui permet d'atteindre chacun des modes et de revenir au mode d'accueil. 3.2 Soutenance de 10min + 5 min de questions La soutenance aura lieu lors du dernier TD. Attention 10 min c'est très court! 5 min de présentation des choix d'implantation 5 min de démo sur des scénarios préparés à l'avance qui montrent les fonctionnalités intéressantes de votre automate 5 min de questions techniques 5