Programas

Disponível somente no TrabalhosFeitos
  • Páginas : 3 (586 palavras )
  • Download(s) : 0
  • Publicado : 11 de junho de 2012
Ler documento completo
Amostra do texto
Laboratório 2 - Jantar do Filósofos - Locks

O problema do jantar dos filósofos é uma problema clássico no campo da programação concorrente. Ele serve para comparar vários formalismos e provêprogramas concorrentes. É um problema suficientemente simples para ser tratado, ainda que bastante desafiante.
O problema é estabelecido em uma comunidade isolada de 5 filósofos (0-4). Os filósofosengajam-se somente em duas atividades: pensar e comer.

Task Filosofo is
Begin
Loop
Think;
Pre-Protocolo; // tarvamento com locks
Eat;// seção crítica do código do filósofo
Pos-Protocolo; // destravamentocom locks
End loop;
End Filosofo;

As refeições são feitas comunitariamente em uma mesa –uma travessa de spaghetti - é colocado no centro de uma mesa com 5 pratos (0-4) e 5 garfos (0-4), que interminavelmente reabastecido. Infelizmente, o spaghetti é irremedialvelmente emaranhado e umfilósofo necessita 2 garfos para comer. Cada filósofo pode pegar os garfos ao seu lado esquerdo e direito, mas somente 1 garfo em um tempo.
O problema é implementar pré e post protocolos, usando omecanismo de locks, para garantir que um filósofo somente come se ele tem 2 garfos. A solução deve também satisfazer as propriedades de correção para exclusão mútua (instruções de seções críticas de doisou mais filósofos não podem ser intercalados) , tais como:
1. Um filósofo come somente se ele tem 2 garfos.
2. Nenhum de dois filpósofos pode reter o mesmo garfo simultaneamente.
3. Nãopode exitir deadlock.
4. Nenhum filósofo entra em starvation.
5. Comportamento do programa concorrente é eficiente sob ausência de contenção (dois processos ou duas thread concorrem pelo mesmorecurso).
Uma primeira tentativa de implementação é mostrada no que segue. Assumimos que cada filósofo é inicializado com seu índice I. Cada garfo é implementado usando o mecanismo de locks. Um...
tracking img