Synchronisation des processus à l’aide des moniteurs

On dispose du  programme suivant proposé pour le modèle des lecteurs/rédacteurs:

Allocation: moniteur

Variables

occupé: booléen;nb: entier;Lect, Redac: condition;

 

Procédure Début-Lecture{

     nb++;

     si(occupé) alors

          Lect.wait;

          Lect.signal fsi

   }

Procédure Début-Lecture{

      nb++;

       si(occupé) alors

       Lect.wait;

       Lect.signal

        fsi

}

Procédure Fin-Lecture{

     nb--;

    si(nb==0) alors

   Redac.signal

     fsi             

}     

Procédure Fin-Ecriture{

    occupé= faux;

     si(nb > 0) alors

       Lect.signal

    sinon

       Redac.signal

    fsi

   }

 

1.Discuter la solution proposée en expliquant le rôle de chaque procédure du moniteur et de chaque variable utilisée, ainsi que la classe de processus prioritaire (lecteur ou rédacteur).

2.Modifier la solution pour donner la priorité à l'autre classe de processus.

3.Modifier la solution pour permettre une politique FIFO.

  • 1 vote. Moyenne 5 sur 5.

Ajouter un commentaire

Anti-spam