Concept de processusIl faut bien distinguer un programme (texte) d’un processus (exécution, activité séquentielle). L’état d’un processus est caractérisé par les valeurs des variables manipulées (dont le compteur ordinal), son histoire est la séquence des états qui ont menés à l’état actuel.
s0 à s2 à s0 à s3 à …
On associe souvent à un processus un vecteur d’état (pile, adresse de pile, registres, mot d’état (C.O., …), table d’adressage).
Un processus peut ne pas exister, être actif ou passif. Il faut donc contrôler ces états. Pou cela, on a besoin de 3 primitives, quit (termine le processus), fork x (commence un processus à l’adresse x) et join t y (t = t-1 ; si t=0 alors lance un processus en y). En effet on ne peut parenthèser tous les schéma, donc les instructions cobegin et coend ne suffisent pas.

|
t6 = 2 ; t8 = 3 p1 : S1 ; fork p2 ; fork p5 ; fork p7 ; quit p2 : S2 ; fork p3 ; fork p4 ; quit p3 : S3 ; join t8 p8 ; quit p4 : S4 ; join t6 p6 ; quit p5 : S5 ; join t6 p6 ; quit p6 : S6 ; join t8 p8 ; quit p7 : S7 ; join t8 p8 ; quit p8 : S8 ; quit | |