Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Próxima revisão | Revisão anterior | ||
| so:leitores_escritores [2008/05/09 14:18] – external edit 127.0.0.1 | so:leitores_escritores [2010/04/23 16:48] (atual) – maziero | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| + | ====== Leitores e Escritores ====== | ||
| + | Este projeto consiste em usar threads e **semáforos** < | ||
| + | |||
| + | ===== Problema ===== | ||
| + | |||
| + | Construa um sistema com threads que acessam de forma concorrente uma fila de valores inteiros. Nesse sistema existem dois tipos de threads: | ||
| + | |||
| + | * **Leitora**: | ||
| + | * **Escritora**: | ||
| + | |||
| + | Observe que não há condição de disputa quando somente threads leitoras | ||
| + | |||
| + | ===== Observações ===== | ||
| + | |||
| + | Existem três tipos de soluções para esse problema de sincronização: | ||
| + | |||
| + | * **Priorização dos leitores**: sempre que um leitor quiser ler e não houver escritor escrevendo (pode haver escritor esperando), ele tem acesso à fila. Nesta solução, um escritor pode ter de esperar indefinidamente (inanição, | ||
| + | * **Priorização dos escritores**: | ||
| + | * **Prioridades iguais**: não há risco de inanição, pois leitores e escritores têm as mesmas chances de acesso à fila; pode haver uma queda de desempenho em relação às soluções anteriores. | ||
| + | |||
| + | |||
| + | ===== A entregar ===== | ||
| + | |||
| + | Você deve pesquisar as três soluções e implementá-las, | ||
| + | |||
| + | Devem ser entregues os arquivos C com as soluções implementadas separadamente, | ||