Baixe o app para aproveitar ainda mais
Prévia do material em texto
Jantar dos filósofos Jantar dos filósofos é um problema que consiste em cinco filósofos sentados em volta de mesa pensando e comendo, eles dividem entre si um recurso o garfo, cada filósofo possui um garfo porém ele necessita de dois para poder comer, assim ele terá que pegar o garfo do seu vizinho emprestado, porém na programação a resolução desse problema pode gerar outros dois tipos de problemas o deadlock e o starvation. Para resolver esse problema se usa a técnica de programação concorrente, onde cria-se uma thread para representar cada filósofo e uma área critica entre eles, para controlar o acesso à área critica, utilizamos um mecanismo computacional chamado semáforo. A resolução do problema consiste em que quando um filósofo estiver comendo seus vizinhos da direita e da esquerda ficarão aguardando a liberação do garfo, para que não haja uma disputa pelo mesmo evitando um deadlock. Mas ainda temos o problema do starvation, onde todos os filósofos têm que comer aleatoriamente, pois se não os mais famintos matarão os demais de fome, pois eles nunca conseguirão o acesso aos recursos necessários para poder comer. Esse problema e clássico na computação, é um dos problemas da programação concorrente. O jantar dos filósofos é uma representação da necessidade de alocar vários recursos para diferentes processos, sem que ocorra deadlock ou starvation, ele foi proposto por Dijkstra em 1965 para representar esse problema. Jantar dos filósofos
Compartilhar