Você deve implementar uma solução para um problema clássico de comunicação entre processos: o Problema dos Barbeiros. Vimos em aula uma solução para uma versão desse problema na qual havia um único barbeiro e não havia limite no número de clientes esperando atendimento na barbearia.
Neste exercício você deve lidar com barbeiros trabalhando
simultaneamente (ou seja, em vez de ter um barbeiro e uma cadeira de
barbeiro, a barbearia agora tem
barbeiros e
cadeiras de
barbeiro). Considere também que a barbearia tem
assentos para os
clientes que estão esperando que algum barbeiro os atenda. Quando um
cliente chega à barbearia ele verifica se ela está lotada ou não. Se a
barbearia estiver lotada (se todos os
barbeiros estiverem atendendo
clientes e todos os
assentos de espera estiverem ocupados), ele sai
sem ter seu cabelo cortado. Se a barbearia não estiver lotada, ele entra
e espera pelo corte de seu cabelo.