• Aucun résultat trouvé

Exercice N°1 : Application du principe de synchronisation -

N/A
N/A
Protected

Academic year: 2022

Partager "Exercice N°1 : Application du principe de synchronisation -"

Copied!
1
0
0

Texte intégral

(1)

Final LO41

Exercice N°1 : Application du principe de synchronisation - Barème 8 points -

Dans le domaine des chemins de fer, un poste d'aiguillage est un lieu qui rassemble les dispositifs nécessaires à la commande des signaux, des appareils de voie, des installations de sécurité en général. L'aiguilleur est donc l'agent responsable de la commande des installations de sécurité (signaux, appareils de voie etc.). Pour l’assister, nous proposons de régler les problèmes de gestion de ses voies ferroviaires.

Votre travail consiste à modéliser la gestion du trafic ferroviaire selon les indications de la figure suivante :

Voie A

Voie B

Voie C Voie D

Aiguillage 1

Aiguillage 2 Poste Aiguillage

P1 Tunnel

Ligne TGV

Ligne M

Ligne GL

Ligne Voie Unidirectionnelle

Gare Aiguillage Tunnel Voies

Poste Aiguillage

P3

Poste Aiguillage

P0

SENS OUEST SENS EST

Voies Garage

Poste Aiguillage

P2

Moniteur

Dans notre démarche, nous vous demandons de régler les problèmes de synchronisation en utilisant un moniteur. Les caractéristiques du problème sont les suivantes : le réseau ferroviaire est constitué de trois zones distinctes:

1. la zone GARE traversée par les voies C et D ;

2. la zone AIGUILLAGE à partir de laquelle les trains peuvent être temporairement immobilisés dans les voies de garage. Les voies de cette zone sont réservées à un type de train en particulier. Notons que la zone « marchandise » est divisée en deux lignes : une pour chaque sens. Les voies de garage sont gérées comme des files d’attente temporaires.

3. la zone TUNNEL est constituée d’une seule voie bidirectionnelle. Pour des raisons évidentes de sécurité, non seulement aucun arrêt dans cette zone est permise mais aussi un seul train à la fois peut emprunter cette ligne.

4. La zone VOIE est composée d’une voie principale adaptée à tous types de trains.

Le fonctionnement du réseau ferroviaire est sous la responsabilité des postes d’aiguillages P0, P1, P2 et P3. Ils sont chargés de la coordination de l’ensemble des voies. L’aiguilleur dispose de l’ensemble des informations des postes d’aiguillage.

- Les trains circulent dans les deux sens (EST-OUEST) et (OUEST-EST). Un train ne peut pas faire demi-tour.

- Il faut éviter que les trains rentrent en collision.

- Plusieurs catégories de trains circulent : TGV, Grande Ligne (GL) et trains de Marchandises (M). Dans notre cas, ils circulent tous à la même vitesse.

- Un système de priorité est mis en place donnant lieu à : o priorité 1 : TGV,

1

(2)

Final LO41

o priorité 2 : GL, o priorité 3 : M.

Le TGV est le train le plus prioritaire.

- Dans le cas où deux trains différents disposent de la même priorité, un choix arbitraire devra être fait.

- Seuls les trains transportant des passagers desservent la gare.

o Tous les trains de voyageurs s’arrêtent obligatoirement à la gare. Ils disposent tous de la même durée d’attente en gare.

o Deux trains sur chacune des voies (à condition de respecter le sens de la voie) peuvent être simultanément en attente à la gare.

o Les trains de marchandises sont routés obligatoirement sur la voie A ou B.

Ils ne peuvent pas s’arrêter sur ces voies.

o Selon le trafic, les trains peuvent attendre en gare (trains de voyageurs uniquement) ou sur les voies de garage (pour tous les trains).

o Les postes d’aiguillage P0, P1, P2 et P3 sont chargés de la coordination.

Questions :

a. Modéliser le fonctionnement du réseau à partir des processus Train_Ouest_Est et Train_Est_Ouest, en utilisant des conditions d’un moniteur soigneusement définis (sémantiques) et les primitives associées. Expliquer en langage clair et concis le rôle de chacune de ces primitives. Propositions de primitives : EmprunterVoie(NomVoie), PrendreTunnel, DéposerPassager, LigneTGVGarage, LigneGLGarage , …

b. Modifier votre modèle en faisant apparaître la modification suivante :

 Le tunnel dispose de deux voies unidirectionnelles (EST-OUEST) (OUEST- EST)

Exercice N°2 : La gestion de l’interblocage Barème 2 points A un instant t donné, l’état E du système est le suivant :

R0 R1 R2

P0 7 2 5

P1 8 1 4

P2 4 3 5

P3 5 7 6

P4 5 2 1

Annonce

R0 R1 R2

P0 1 1 0

P1 7 3 0

P2 2 2 0

P3 4 4 0

P4 4 0 0

Allocation

R0 R1 R2

23 14 7

Ressource

R0 R1 R2

5 4 7

Dispo

Questions :

a- Donnez l’ordre des processus exécutés en appliquant l’algorithme du banquier.

b- La suite est-elle fiable ?

2

(3)

Final LO41

Exercice N°3.

Implémentation en langage C

-

Barème 10 points -

On s’intéresse à la création d’un ensemble de NSERV serveurs lancés indépendamment par l’intermédiaire d’une commande sans paramètre de nom serveur : la commande est donc supposée être appelé NSERV fois. Ces NSERV processus devant communiquer par l’intermédiaire d’une mémoire partagée dont le contenu est un nombre entier qui correspond au nombre de serveurs lancés. D’autres objets IPC sont peut être nécessaires.

Donner le code correspondant à la commande serveur. Un protocole particulier devra permettre à chaque processus, d’une part de s’attribuer un numéro logique à sa création et d’autre part d’attendre, avant de se recouvrir par une commande serveuri dépendant du numéro logique i du processus, que les NSERV processus existent. Les contraintes suivantes sont imposées :

- les mécanismes de communication et de synchronisation utilisés seront les IPC,

- le ou les IPC utilisé(s) par le protocole d’attribution des identités logiques seront tous supprimés une fois les NSERV processus créés,

- la solution ne comportera aucune attente active, - la solution devra traiter la gestion des erreurs,

- la solution devra permettre l’interaction utilisateur par le biais des signaux.

Annexe: Objet IPC Mémoire partagée :

int shmget(key_t key, int size, int shmflg);

char *shmat (int shmid, char *shmaddr, int shmflg ) int shmdt (char *shmaddr)

int shmctl(int shmid, int cmd, struct shmid_ds *buf);

Sémaphores :

int semget(key_t key, int nsems, int semflg )

int semop(int semid, struct sembuf *sops, unsigned nsops) int semctl(int semid, int semnum, int cmd, union semun arg ) Files de message:

int msgget (key_t key, int msgflg)

int msgsnd (int msqid, struct msgbuf *msgp, int msgsz, int msgflg)

int msgrcv (int msqid, struct msgbuf *msgp, int msgsz, long msgtyp, int msgflg) int msgctl ( int msqid, int cmd, struct msqid_ds *buf )

3

Références

Documents relatifs

Si certaines d’entre elles, comme les ophrys au curieux labelle imitant divers insectes, sont assez répandues dans la région, d’autres ont une répartition beaucoup plus limitée

L’élément majeur du site est la présence, au sein du cortège banal de l’avifaune commune des paysages agropastoraux, d’une petite population nicheuse de Bruant ortolan, un oiseau

L’Astragale de Montpellier est, comme l’indique son nom, une espèce répandue sur le pourtour méditerranéen d’où elle gagne, via la vallée de la Garonne, la

Elle est accompagnée par un cortège de plantes propres aux pelouses calcicoles arides, parmi lesquelles figurent plusieurs espèces à répartition très localisée au niveau régional

En lisière des fourrés secs et de la chênaie pubescente, quelques pieds de l’élégante Marguerite en corymbe peuvent être également observés : il s’agit ici d’une

C’est là que se cantonnent en effet deux plantes typiques des dunes littorales où elles trouvent à profusion les sables plus ou moins meubles qui constituent leur biotope électif :

Sur le plan botanique, un des intérêts du site réside dans le caractère sud-ouest atlantique très marqué de sa flore dont plusieurs éléments, répandus dans le sud-ouest de

L’élément floristique le plus précieux du site est la présence d’une importante station de Sabline des chaumes, une espèce endémique du territoire français et bénéficiant