O trabalho foi baseado na proposta da Professora Janet Davis da Universidade Grinnell College. Este exercício é uma versão ligeiramente modificada dos exercícios 2.35 e 2.36 do livro "Sistemas operacionais: Projeto e Implementação - 2 ed", de Tannenbaum e Woodhull. IntroduçãoUm estudante graduando em antropologia e em ciência da computação embarcou em um projeto de pesquisa para ver se os babuínos africanos tem inteligência para superar impasses (deadlocks). Ele localiza um cânion profundo e prende uma corda através dele, assim os babuínos podem cruzá-lo utilizando a corda.![]() DescriçãoA passagem ao longo da corda segue estas regras:
A travessia também deve ser otimizada para evitar esperas muito longas (vários babuínos atravessando ao mesmo tempo). ImplementaçãoSimular cada babuíno como um processo separado. Ao todo, 50 babuínos irão cruzar o cânion, com um gerador de números aleatórios especificando se estão se movendo para leste ou para oeste (com probabilidade igual). Use um gerador de números aleatórios, de modo que o tempo entre chegada de babuínos ao cânion seja entre 1 e 8 segundos. Cada babuíno leva um segundo para chegar na corda (isto é, o espaçamento inter-babuíno mínimo é 1 segundo). Todos os babuínos atravessam na mesma velocidade. O percurso leva exatamente 4 segundos, após o babuíno chegar na corda. Use semáforos ou monitor para sincronização. Durante a execução do programa deve mostrar as filas para travessia. Ao final da execução do programa deve ser exibido um relatório contendo:
AvaliaçãoA avaliação consiste em uma apresentação oral em sala com a execução do programa e um trabalho escrito. Na avaliação será considerado 50% para a apresentação oral em sala (incluindo a execução correta do programa) e 50% para o relatório escrito. Apresentação OralOs alunos deverão fazer uma apresentação oral do trabalho realizado para os demais alunos. Na apresentação deverão mostrar a análise do problema, as formas de resolução, as decisões de implementação e a apresentação da execução do programa. Considera-se a execução correta se o programa cumprir o determinado sem a ocorrência de deadlocks ou starvation. O calendário de apresentação será definido futuramente. A apresentação oral é obrigatória. Caso o aluno não consiga apresentar na data marcada, haverá outra oportunidade, antes da NEF, para apresentar o trabalho. Trabalho EscritoO trabalho escrito é obrigatório. Os alunos deverão entregar um relatório escrito com os seguintes tópicos:
Para ajudar na preparação do relatório apresentamos um modelo de exemplo: Modelo de Relatório. |