1) O problema dos filósofos glutões descreve 5 filósofos que precisam de 2 garfos cada para comer macarrão, porém há apenas 1 garfo por prato.
2) Isso pode causar um deadlock, onde nenhum filósofo consegue comer porque todos estão esperando o outro soltar o garfo.
3) Duas soluções possíveis são designar que apenas 2 filósofos comem de cada vez, ou usar semáforos para sinalizar quais garfos estão disponíveis.
1) O problema dos filósofos glutões descreve 5 filósofos que precisam de 2 garfos cada para comer macarrão, porém há apenas 1 garfo por prato.
2) Isso pode causar um deadlock, onde nenhum filósofo consegue comer porque todos estão esperando o outro soltar o garfo.
3) Duas soluções possíveis são designar que apenas 2 filósofos comem de cada vez, ou usar semáforos para sinalizar quais garfos estão disponíveis.
1) O problema dos filósofos glutões descreve 5 filósofos que precisam de 2 garfos cada para comer macarrão, porém há apenas 1 garfo por prato.
2) Isso pode causar um deadlock, onde nenhum filósofo consegue comer porque todos estão esperando o outro soltar o garfo.
3) Duas soluções possíveis são designar que apenas 2 filósofos comem de cada vez, ou usar semáforos para sinalizar quais garfos estão disponíveis.
O problema dos filsofos Glutes (Comiles) funciona da seguinte forma: Existem 5 pratos em uma mesa redonda com macarronada, sendo que foi posto muito molho de forma de que cada um dos 5 filsofos necessite de dois garfos para conseguir pegar o macarro sem que este escorregue. Contudo s h um garfo para cada prato colocado a sua lateral.
Filsofos comem/pensam Cada um precisa de 2 garfos para comer Cada filsofo tenta pegar um garfo por vez Como prevenir deadlock? Ele representa a necessidade de alocar vrios recursos para diferentes processos, sem que ocorra deadlock e/ou starvation; Ou mesmo de alocar recursos escassos;
Problema: Ir faltar garfos para que todos os filsofos comam ao mesmo tempo. Dessa forma, quem ir comer primeiro?
Ocorre um problema de concorrncia quando um filosofo vizinho ao colega tenta utilizar dois garfos para comer.
Pensando na soluo: Apenas dois filsofos iro comer ao mesmo tempo, sendo que eles nunca estaro um ao lado do outro. Como todos esto com fome a tendncia que todos tomem posse de seu garfo rapidamente. Contudo, se isso ocorrer, nenhum deles conseguir comer a macarronada e um deadlock acontecer, pois todos estaro esperando que o outro largue o garfo.
Deadlock: Ocorre quando um processo aguarda por um recurso que nunca estar disponvel; cada vez mais frequente em sistemas atuais onde o paralelismo intenso;
Soluo 1: quando acontecer um Deadlock, todos devolvem os garfos mesa, porm isso ainda no resolver o problema. Isso uma condio dentro do sistema chamado Starvation, onde o sistema sempre est trabalhando, mas no produz nada til. Como o caso de pegar garfo e devolver garfo continuadamente. A ideia da soluo que quando 2
devolverem o garfo a mesa, cada filsofo deve esperar um tempo diferente para poder pegar o garfo novamente. Trazendo esse problema para um sistema de computao, os pratos representaro os processos e os garfos os recursos. Os filsofos esto correndo para pegar os garfos, ou seja, isso uma condio de corrida e todos eles esto entrando ou tentando entrar em suas regies crticas.
Starvation (espera indefinida): Um processo nunca consegue acessar sua regio crtica; Dependendo da forma com que o SO seleciona os processos que acessaro a regio compartilhada, pode ocorrer starvation:
Temporizar a ocupao dos garfos, evitando a concorrncia, permitindo apenas dois filsofos de comer ao mesmo tempo.
Soluo 2: sinalizar com semforos cada garfo, para que quando ocupado evite de ser pego pelo filosofo. (1) Ocupado (0) Desocupado
Boas solues Ausncia de deadlock Ausncia de starvation Alto grau de paralelismo