Vous êtes sur la page 1sur 2

Exercices du chapitre 4 : Promela

1. Protocole de Lynch

Ce protocole est réalisé par deux processus distants qui communiquent par échange de messages.

1.1. Compréhension du fonctionnement du protocole décrit par l'automate ci-dessous :


– le transfert de données peut-il avoir lieu dans un seul sens à la fois ?
– l'échange est-il « half-duplex » (bidirectionnel à l'alternat) ou « full-duplex »
(bidirectionnel simultané) ?
– que signifient les variables « o » et « i » ?
– le mécanisme de « piggy-backing » est-il utilisé ?
– quand est-ce que l'émetteur de données produit un nouveau message à envoyer ?
– quand est-ce que le récepteur de données consomme un nouveau message ?
– comment peut-on initialiser le transfert de données ?
– la fin du transfert de données est-elle prévue dans le protocole ?
– peut-il y avoir des duplications de messages ? Donner un exemple de scénario.

1.2. Codage en Promela

a) définir les différents types de messages


b) définir le type de processus proctype transfer (chan inc, out, chin,
chout) :
- inc et out représentent les canaux de communication entre le processus et sa couche
supérieure (production/consommation de données)
- chin et chout représentent les canaux de communication entre les processus distants
(réception/émission de messages)
c) définir le processus init qui déclare les canaux et lance les processus de type
transfer représentant deux processus A et B, pour le scénario suivant :
- le processus A produit les données '1' et '2'
- le processus B produit les données '3' et '4'
- le processus B initialise le transfert en envoyant le message ERR(0) au processus A
d) tester le programme par simulation avec différents scénarios d'échanges.
Exercice 2

Ecrire en Promela un processus qui prend en paramètre un entier n, puis affiche la somme des n
premiers entiers, en émulant le comportement de la boucle «while».

Exercice 3

Ecrire en Promela un processus qui affiche la valeur maximum d'un tableau de n entiers.

Exercice 4

a) Ecrire en Promela l'algorithme d'exclusion mutuelle de la boulangerie vu en cours.

b) Simuler le fonctionnement avec le scénario vu en TD.

c) Vérifier à l'aide de Promela que les propriétés suivantes sont garanties :

– exclusion mutuelle,

– non interblocage et équitabilité.

d) Généraliser le fonctionnement des processus pour qu'ils redemandent cycliquement l'accès en


section critique.

Vous aimerez peut-être aussi