- - - - CENAPAD-MGCO

contents index A seguir: Objeto do Curso Acima: Motivação Anterior: A Disciplina Programação Paralela


Leitores e Escritores

Esta applet dispara 12 processos (threads ) paralelos, sujeitos a um tipo de sincronização que ilustra os problemas estudados neste curso. Seis processos são ``leitores'', e podem ler simultaneamente uma certa estrutura de dados. A vida de um processo leitor é cíclica:

1.
ele ``pensa'', isto é, faz qualquer atividade não relacionada com esta sincronização,
2.
fica ``faminto'', isto é, faz uma requisição de leitura, e
3.
lê efetivamente, ao receber uma autorização de leitura, após o que volta a pensar.
Seis outros processos são ``escritores'', com ciclos de vida análogos. Quando um escritor escreve, nenhum outro pode escrever, e nenhum leitor pode ler. Aperte Start , e veja o que acontece.

Nosso curso se preocupa com a construção de programas como este. Preocupa-se também com a formulação e prova de propriedades destes programas. Um tipo de propriedade é expresso pela obediência à restrição de sincronização que falamos. Outras propriedades podem ser satisfeitas ou não, como por exemplo: toda operação de escrita é bem sucedida, ou é possível que um escritor permaneça esperando por um tempo indeterminado? Experimente: aperte Stop , modifique os valores de entrada que determinam os tempos médios de leitura e escrita, assim como os tempos médios em que um processo fica ``pensando'', e aperte Start outra vez. Você verá facilmente que se o tempo em que os leitores pensam for reduzido, pode ser que um escritor não consiga nunca realizar sua escrita.


next up previous contents index
Next: Objeto do Curso Up: Motivação Previous: A Disciplina Programação Paralela
Osvaldo Carvalho - Postscript - Comentários?