Problema: Um restaurante universitário possui apenas 5 mesas com
capacidade para apenas 1 pessoa por mesa. Para controlar a entrada há na porta um pote com 5 fichas. Cada estudante que entra pega uma ficha, e almoça. Cada estudante que sai devolve a ficha no pote. Não se entra sem ficha, e na saída é obrigado a devolver a ficha ao pote. As demais pessoas devem esperar na fila caminhando para passar o tempo. Como implementar isso usando concorrência sendo que cada estudante é considerado um thread. Problema do Restaurante Problema do Restaurante Semáforo pode ser mesa ou ficha Problema do Restaurante Protocolo de Entrada. Faz um DOWN no semáforo Problema do Restaurante Região Crítica Problema do Restaurante
Protocolo de Saída. Faz um UP no
semáforo Problema do Restaurante
Qtd de alunos na fila.
Threads que serão criadas Problema do Restaurante
Qtd de mesas. Neste
caso é um Semáforo Contador Problema da Piscina 20 pessoas 7 cestos 3 cabines de troca Problema: Em uma piscina temos 20 pessoas que desejam nadar nela. Porém para uma pessoa poder nadar ela tem que trocar de roupa. Para trocar de roupa ela precisa pegar um cestos livre. Com um dos cestos já em seu poder ela precisa conseguir uma cabine vaga para poder se trocar. O cesto é para poder deixar a sua roupa atual e vestir a roupa de banho, e precisa da cabine, pois ela não vai se trocar ao ar livre. Depois que ela sair da cabine, ela deixa o cesto na beira da piscina com suas roupas e vai nadar. Ela nada o quanto desejar. Assim que terminar de nadar, ela pega seu cesto com as roupas, disputa uma cabine para poder se trocar novamente. Ao terminar de se trocar ela sai da cabine e libera o cesto para que outra pessoa que queira nadar, pegue ele. Enquanto essas pessoas não estão nadando elas ficam caminhando ao redor da piscina.