Threads
Trabalho Prático de Recuperação - 1o Semestre 2012 – INDIVIDUAL
Entrega: até a hora da avaliação de validação
Avaliação de Validação: 27/07/2012, às 10h
Descrição: Implemente o Problema da Busca – Inserção – Remoção utilizando:
1) Semáforos e threads em C, ou
2) Monitores e threads em Java
Problema: Três tipos de threads compartilham o acesso a uma lista ligada simples: as que realizam busca, as que realizam inserção e as que realizam remoção. As que realizam busca simplesmente verificam a lista, portanto podem executar concorrentemente com as outras threads que realizam busca. As que realizam inserção adicionam itens no final da lista e estas devem ser mutuamente exclusivas, de modo a impedir que duas threads insiram novos itens ao mesmo tempo. Entretanto, uma thread de inserção pode ser realizada em paralelo com outras que realizam busca. Finalmente, as que realizam remoção, removem itens de qualquer posição da lista. No máximo um processo que remove pode acessar a lista ao mesmo tempo, e a remoção deve ser mutuamente exclusiva com buscas e inserções.
Especificações mínimas (devem ser implementadas):
• Para a execução do teste deve-se ter pelo menos 2 threads de cada tipo de thread (que buscam, que inserem, que removem) de modo a testar os acessos concorrentes;
• É permitido fazer com que cada thread durma um certo tempo de modo a simular a realização da ação mais demorada;
• Todas as threads devem estar executando em “paralelo” (pseudo-paralelismo);
• Faça um número grande de acessos de forma a verificar que está livre de deadlock.
• FAÇA tratamento de erros.
Deve-se enviar os códigos fontes e também uma monografia que deve conter: introdução
(dizendo o que o trabalho faz), uma revisão dos conceitos de S.O. utilizados na implementação do trabalho, tecnologias utilizadas, descrição dos passos necessários para a execução do trabalho e uma conclusão sobre a sequência de acessos que garante