- - - - CENAPAD-MGCO

A seguir: Elaine Gouvea Pimentel Acima: Cristiano Ligieri Pereira Anterior: 4a. Questao


5a Questão

class Barrier {
  Bed bed;
  int n = 0;
  Key mutex;

  barrier(int p) {
    lock(mutex);
      n++;
      if (n < p)
        wait(bed, mutex);
      n--;
      if (n > 0)
        wakeup(bed, mutex);
    unlock(mutex);
  }
}

O uso desta classe deve ocorrer da seguinte forma:

/* Assumindo "Barrier bar" uma variavel global aos varios processos */

/* processos clientes */

.
.
.
bar.barrier(5);
.
.
.



Osvaldo Carvalho - Postscript - Comentários?