- - - - CENAPAD-MGCO

A seguir: Fabio Tirelo Acima: Elaine Gouvea Pimentel Anterior: 4a Questão


5a Questão

int b;

class Barrier {
   int count = 0;       /* Numero de processos na barreira*/
   Bed bed;
   key mutex;
   }
   
void Barrier:: barrier(int b){
   lock(mutex);
   count++;
   if (count == b){
      wakeup(bed, mutex);
      }
    else wait(bed, mutex);
    count--;
    unlock(mutex);
   }

Se o número de processos na barreira é menor que b, os processos ficam presos. Quando b processos atingem a barreira , todos são liberados.



Osvaldo Carvalho - Postscript - Comentários?