next up previous contents
suivant: Les messages monter: Les modes de communication/synchronisation précédent: Les modes de communication/synchronisation   Table des matières

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 [*] 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 2003-05-07