next up previous index
Next: L'expression du non-déterminisme Up: Les modes de communication/synchronisation Previous: Les variables partagées :   Index

Les messages : un exemple

Les primitives de communication inter-processus sont en général :

Les messages permettent de synchroniser des processus distants.

Il existe des variantes en fonction des sémantiques :

Soient les quatre processus suivant qui représentent d'une part deux philosophes mangeurs de spaghettis; d'autre part deux fourchettes qu'ils se partagent.

La syntaxe est inspirée de CSP (! pour emettre et ? pour recevoir), et la sémantique est celle du rendez-vous.

Processus P(i) /* i de 0 a 1 */
begin
while true do
begin
0 F(i) ! prendre;
1 F(1-i) ! prendre;
2 F(1-i) ! poser;
3 F(i) ! poser;
end;
end.
Processus F(i) /* i de 0 a 1 */
begin
while true do
begin
L P(0) ? prendre $\rightarrow$ 0 P(0) ? poser;
or
L P(1) ? prendre $\rightarrow$ 1 P(1) ? poser;
end;
end.


\begin{automate}[fct]{800}{300}{Deux philosophes.
}{0.6}(25,5)
\etat[i]{400}{250...
...]{onze}{deux}{P0putF0}(0,4)
\trans{treize}{un}{P1putF1}(0,-4)
\par\end{automate}


next up previous index
Next: L'expression du non-déterminisme Up: Les modes de communication/synchronisation Previous: Les variables partagées :   Index
Alain GRIFFAULT
2000-03-24