next up previous contents
suivant: Une solution avec un monter: Les lecteurs/rédacteurs précédent: Les lecteurs/rédacteurs   Table des matières

Une solution avec un moniteur à un problème plus simple

Le moniteur suivant protège la lecture d'une variable a non initialisée.

sync : moniteur;                     |  processus P
  var fait : boolean;                |    debut
      fini : condition;              |    ecrire(a);
procedure finEcrire;                 |    sync.finEcrire;
  debut                              |    fin
  fait := vrai;                      |
  fini.signaler                      |  processus Q
  fin                                |    debut
procedure debutLire;                 |    sync.debutLire;
  debut                              |    lire(a);
  si (non fait) alors                |    fin
    fini.attendre
  fin
procedure init;
  debut
  fait := faux
  fin



Alain Griffault 2003-05-07