O Barbeiro Dorminhoco

318 palavras 2 páginas
O Barbeiro
Dorminhoco

• O problema é análogo a manter o barbeiro ocupado enquanto há clientes, e descansando quando não há nenhum (fazendo isso de uma maneira ordenada).
O barbeiro e seus clientes correspondem aos processos mencionados acima.

A barbearia tem:
• um barbeiro
• uma cadeira de barbeiro
• algumas cadeiras para os fregueses esperarem

Se o movimento estiver fraco (nenhum freguês), o barbeiro senta na sua cadeira e dorme;
Quando um freguês chega no salão vazio, ele tem que acordar o barbeiro;

Se outros fregueses chegam enquanto o barbeiro está ocupado, eles:
• Sentam na cadeira de espera
• Vão embora, se não houver cadeira vazia.

Quando o barbeiro termina o corte de um cliente, dá uma olhada nas cadeiras de espera, se houver clientes: • ele escolhe um e o atende.
• Caso contrário, volta a dormir até aparecerem novos clientes.

Para garantir que clientes não furem fila, que o barbeiro não durma para sempre, que os clientes em espera sejam atendidos e apenas um por vez, são usados semáforos.

Serão usados três semáforos:
• customers, que conta os clientes à espera de atendimento (exceto o cliente que está na cadeira de barbeiro, que não está esperando);
• barbers, o número de barbeiros (0 ou 1) que estão ociosos à espera de clientes
• mutex, que é usado para exclusão mútua.
Precisamos ainda de uma variável, waiting, que também conta os clientes à espera de atendimento. Precisamos ainda de uma variável, waiting, que também conta os clientes à espera de atendimento. • Waiting é essencialmente uma cópia de customers. A razão de se ter waiting é que não há uma maneira de ler o valor atual do semáforo. Nessa solução, um cliente que entra na barbearia deve contar o número de clientes à espera de atendimento. Se este for menor que o número de cadeiras, ele ficará; do contrário, ele sairá.

Relacionados

  • Barbeiro Dorminhoco
    723 palavras | 3 páginas
  • Barbeiro Dorminhoco
    784 palavras | 4 páginas
  • solução barbeiro dorminhoco
    863 palavras | 4 páginas
  • Barbeiro
    542 palavras | 3 páginas
  • condiçoes de disputa
    369 palavras | 2 páginas
  • Problemas Classicos SO
    477 palavras | 2 páginas
  • Algorítimo barbeiro
    681 palavras | 3 páginas
  • Sistemas Operacionais
    1558 palavras | 7 páginas
  • Tp so
    2251 palavras | 10 páginas
  • Mecanismos de sincronização de processos e aplicações concorrentes
    2274 palavras | 10 páginas