Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior | |||
so:leitores_escritores [2010/04/23 16:48] – maziero | 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, |