- - - - CENAPAD-MGCO

A seguir: Sidney Batista Filho Acima: Sahira Vieira de Miranda Anterior: Questao 4


Questao 5

Processo:

        ...
        bar.barrier(b);  
          // Processo e bloqueado ate que o numero de processos
          // igualmente  bloqueado na barreira atinja b
        ...

class Barrier{
   Key mutex;
   Bed B;
   Int n = 0;   // Numero de processos que estao na barreira

   void  barrier(int b){
      lock(mutex);
      n = n+1;
      if (n < b)
         wait(B, mutex);   // espera os (b-n) processos atingirem a barreira
      else{   // os b processos j\'{a} atingiram a barreira
         wakeup(B, mutex);   // desbloqueia os processos
         n = 0;
      }
      unlock(mutex);
  }
}



Osvaldo Carvalho - Postscript - Comentários?