- - - - CENAPAD-MGCO

A seguir: About this document ... Acima: Sidney Batista Filho Anterior: 4a Questão


5a Questão

class Bar {
  Key Mutex; CBed Bed;
  int NumProc = 0;         // no. de processos na barreira
  int NumProcReleased = 0; // no. de processos liberados da barreira

  void barrier(int b) {
    Lock(Mutex);
      NumProc++;
      while(NumProc < b)
        Wait(Bed, Mutex);
      NumProcReleased++;
      if (NumProcReleased == b)
        NumProc = 0;
      else
        Wakeup(Bed, Mutex);
    Unlock(Mutex);
  }

} // Bar



Osvaldo Carvalho - Postscript - Comentários?