Académique Documents
Professionnel Documents
Culture Documents
Process P [a,b] :=
a ; b ; P[a,b]
endproc
endproc
|
|
|
( )
/ \
/ \
/ \
| |
P[tic, tac]
|
|
|
( )
/ \
| |
a b
|
|
|
|
|
P[tic, tac]
La notation P[tic, tac] signifie que le processus P est défini avec des paramètres tic et tac, et il est
répété de manière récursive, c'est-à-dire que l'action P est effectuée après a et b. La notation P[tic,
tac, toc] et P[tic, toc] sont des variantes de cette même action, avec des paramètres différents
Les expressions de comportement ci-dessous sont - elles équivalentes ? Justifier.
Expression 1 : a ; b ; stop → elle décrit un comportement qui consiste à effectuer les actions a, b, puis stop dans
l'ordre.
Expression 2 : a ; b ; stop | | | a ; b ; stop → elle décrit un comportement qui consiste à effectuer les actions a,
b, puis stop dans l'ordre, suivi d'un choix entre effectuer ces mêmes actions de nouveau ou ne rien faire.
L’Expression 2 inclut une option supplémentaire qui n'est pas présente dans Expression 1, donc ces deux expressions de
sont pas équivalentes.
En utilisant le processus Max2 dont le comportement est donné ci-dessous, définir le processus Max4 qui va
produire sur le port out le maximum parmi 4 nombres reçus sur les ports in1, in2, in3 et in4.
Problème 1 : Soit la description du système avec l’opérateur d’entrelacement. Pour simplifier l’analyse, les
récursions ont été éliminées des comportements.
Problème 2 : Soit la description en Lotos ci-dessous. Des récursions dans les comportements des
composants ont été introduites. Une synchronisation entre les composants est mise en place.
Question 2 : Donner l’arbre d’actions de chaque processus composant le processus Dist.
Notez que dans l'arbre d'actions de Dist2, le processus DB et le processus CLIENT sont en boucle,
effectuant des actions en parallèle, mais synchronisées par le composant Dist2 pour assurer que les
actions sont effectuées dans le bon ordre.
Question 4 : Cette description ne permet de servir qu’un client à la fois et une boisson unique.
Quelles modifications proposez-vous pour que le distributeur puisse délivrer du café (resp. du
chocolat) en fonction de la pièce introduite Pièce20 (resp. Pièce 50).
Une des modifications que je proposerais pour que le distributeur puisse délivrer du café en fonction
de la pièce introduite est d'ajouter une condition dans le processus CLIENT pour vérifier quelle pièce
est introduite avant de délivrer le café. Cela pourrait ressembler à ceci:
Process Dist2 [piece, cafe, boit, nettoie] : =
DB [piece, cafe, nettoie] | [piece, cafe]| | CLIENT [piece, cafe, boit]
where
Process CLIENT [piece, cafe, boit]:=
piece;
if piece = Pièce20 then
cafe;
boit;
endif;
CLIENT [piece, cafe, boit]
endproc
process DB [piece, cafe, nettoie]:=
piece ; cafe ; nettoie ; DB [piece, cafe, nettoie]
endporc
endproc
Avec cette modification, le processus CLIENT ne délivrera du café que si la pièce introduite est
Pièce20. Il sera nécessaire de faire une modification similaire pour la pièce Pièce50 pour délivrer du
chocolat. Il serait également possible d'ajouter des branches supplémentaires à l'instruction if pour
prendre en compte d'autres pièces et délivrer d'autres boissons.