next up previous index
Next: Les messages : un Up: Les modes de communication/synchronisation Previous: Les modes de communication/synchronisation   Index

Les variables partagées : un exemple

Soient les deux processus de mise à jour d'un compte bancaire et la variable globale compte initialisée à 10.

Nous faisons l'hypothèse qu'il est impossible que les deux processus accèdent au même instant (même cycle du processeur) à la même variable.

Processus A
var aux : integer

begin
aux := compte;
aux := aux + 10;
compte := aux;
end.
Processus B
var aux : integer

begin
aux := compte;
aux := aux - 5;
compte := aux;
end.

La figure 2.1 représente le graphe des comportements du ``programme'' constitué des deux processus. Chaque n\oeud contient les valeurs des trois variables, et les arcs représentent les instructions.


\begin{automate}[ct]{800}{450}{Les trois variables.
}{0.6}(45,5)
\etat[i]{400}{4...
...\trans[acw]{quinze}{vingtun}{B3}
\trans{dixhuit}{vingtun}{A3}
\par\end{automate}

Le résultat dépend de l'entrelacement des actions, donc de l'ordonnancement des processus. Il y a donc un besoin de contrôler le déroulement d'un processus.



Alain GRIFFAULT
2000-03-24