-
-
-
CENAPAD-MGCO
A seguir: Sidney Batista Filho Acima: Sahira Vieira de Miranda Anterior: Questao 4
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);
}
}