TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

O Jantar dos Filósofos

Por:   •  24/5/2019  •  Relatório de pesquisa  •  453 Palavras (2 Páginas)  •  392 Visualizações

Página 1 de 2

O problema do Jantar dos filósofos foi formulado por Dijkstra em 1965. Neste

problema, cinco filósofos, que alternam suas vidas entre pensar e comer, estão

sentados em uma mesa com um prato de espaguete muito escorregadio, onde são

necessários dois garfos para comê-lo adequadamente, porém, na mesa encontram-se apenas cinco garfos, um para cada filósofo. Para dificultar ainda mais a situação,

eles não se comunicam e nem observam os estados uns dos outros, pois segundo

essa simulação, os filósofos apenas comem e pensam.

Deste modo, para facilitar a compreensão do caso citado, podemos deduzir

que os filósofos são como os processos disputando por algum recurso (garfo), que só

podem acessá-lo quando nenhum dos vizinhos estiver usando-o. Quando não

conseguem acesso a tal recurso, devem ser colocados em estado de bloqueio (para

ficarem pensando).

2. EXPLANAÇÃO DO PROBLEMA

Na hora de comer, o filósofo precisa pegar um garfo à sua direita e outro à

sua esquerda, um de cada vez. Como os garfos são divididos entre os pratos, dois

filósofos vizinhos nunca irão comer simultaneamente.

Para resolver o problema, é necessário estabelecer uma rotina em que todos

os filósofos que estão na mesa pensem e também, comam em algum momento da

“execução”.

Usando as soluções mais simples, como “desabilitar interrupções” ou “Sleep

Awake”, um impasse poderia ser acionado, onde todos eles ficariam pensando e

ninguém comeria, e até mesmo inanição, onde alguns nunca conseguiriam comer. No

caso de impasse, uma situação possível seria a de que cada filósofo que pegou o

garfo a sua direita, ficaria esperando o garfo da esquerda, como todos estão

aguardando juntos, todos ficariam parados.

3. UTILIZAÇÃO DE SEMÁFOROS NO PROBLEMA

Uma solução eficaz, seria o uso de um semáforo para cada filósofo, que

verifica se os vizinhos dele estão comendo ou não, usando macros “DIREITA” e

“ESQUERDA”. Se nenhum dos vizinhos estiver comendo, este filosofo poderá mudar

seu estado para “comendo”, incrementando o valor do semáforo. O número máximo

de filósofos que poderão comer ao mesmo tempo seriam 2, assim, depois que pegar

os garfos e comer, o contador de filósofos “comendo” será incrementado até chegar

ao seu máximo (2), que após os dois comerem, eles colocam de volta os garfos à

...

Baixar como (para membros premium)  txt (3.2 Kb)   pdf (35 Kb)   docx (8.8 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com