Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas Sistemas
Sistemas
Monoprogramveis ou Multiprogramveis ou
Multiprocessadores
Monotarefas Multitarefas
Estrutura do Sistema Operacional
Condies de Corrida
Sees Crtica
Deadlocks : Impasse entre Processos
Condio de corrida
O problema do Jantar dos Filsofos foi proposto e resolvido por Dijkstra em 1965.
O problema foi modelado da seguinte forma:
Cinco filsofos sentados ao redor de uma mesa circular, que contm cinco
pratos de espaguete e cinco garfos.
Entre cada prato de espaguete encontra-se um garfo.
Para comer, um filsofo precisa de dois garfos.
Segundo o problema, cada filsofo alterna perodos de comer e pensar. Assim,
quando um filsofo fica com fome, ele tentar pegar os garfos da sua esquerda e
direita, um de cada vez, para poder comer o espaguete. Se conseguir pegar os
dois garfos, ele come por um tempo, liberando os garfos ao final e voltando sua
atividade de pensar.
Para resolver o problema seria fazer com que o filsofo depois que pegasse o
garfo da direita, verificar se o garfo da esquerda est disponvel. Se estiver
disponvel, o filsofo poderia pegar e comer. Caso no estivesse disponvel, o
filsofo colocaria o garfo da direita e esperaria algum tempo para, ento, tentar
comer novamente. Esta proposta tambm geraria uma situao de impasse entre
os filsofos. Imagine se todos resolvessem comer ao mesmo tempo, pegassem
seus garfos da direita e, aps verificar que os garfos da esquerda no estavam
disponveis, baixar o garfo da direita, esperar um tempo qualquer e todos, mais
uma vez, resolvessem comer novamente.
Problema do Barbeiro Adormecido