Programas

586 palavras 3 páginas
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ósofos engajam-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 um filó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 o mecanismo 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 dois ou 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ão pode 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 mesmo recurso).
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

Relacionados

  • programa;a
    382 palavras | 2 páginas
  • Programas
    1376 palavras | 6 páginas
  • programa
    3016 palavras | 13 páginas
  • programa
    319 palavras | 2 páginas
  • programas
    529 palavras | 3 páginas
  • Programa
    1924 palavras | 8 páginas
  • Programa
    332 palavras | 2 páginas
  • Programas
    3836 palavras | 16 páginas
  • programa
    909 palavras | 4 páginas
  • programas
    557 palavras | 3 páginas