next up previous contents
Next: Les messages Up: Les modes de communication/synchronisation Previous: Les modes de communication/synchronisation

Les variables partagées

Les processus partagent généralement le processeur et une zone mémoire. 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.

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

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}[t]{800}{450}{Les trois variables.
}{0.6}(45,5)
\etat[i]{400}{40...
...\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, c'est à dire l'entrelacement des actions afin de pouvoir garantir le résultat (15 ici).



Alain GRIFFAULT
2002-02-11