Skip to content

Repositório com o trabalho final da cadeira de Sistemas Operacionais, com a simulação de um zoológico onde cada animal é um thread

Notifications You must be signed in to change notification settings

JelsonRodrigues/SO_zoo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SO Zoo

Este repositório contém a implementação do trabalho final da cadeira de Sistemas Operacionais.

Descrição

Em um zoológico existem leões, suricatos e avestruzes, que devem ser alimentados por dois veterinários.
Cada animal come um tipo específico de comida e possui um ciclo diário que consiste em comer, dormir, comer e se exibir, e os veterinários podem servir do estoque do zoológico para o comedouro de cada animal de modo a manter os comedouros sempre cheios.
Quando o estoque de comida de um animal termina o veterinário pode requisitar ao fornecedor a reposição do estoque. O fornecedor reabastece o estoque de todos os animais.
Deve ser utilizada um thread, para cada animal, para cada veterinário e para o fornecedor.

Implementação

A implementação foi realizada utilizando o princípio de atores e troca de mensagens entre eles.
O zoológico possui um canal de comunicação com cada ator, e envia mensagens de atualização de hora, e eventualmente de término da simulação.
Os animais recebem as atualizações das horas, e de acordo com seu estado atual, tratam o evento. Quando os animais vão comer, eles enviam uma mensagem para os veterinários com a quantidade de alimento que irão comer.
Os veterinários recebem mensagens de término da simulação e de requisição de alimento por parte dos animais. Quando os veterinários recebem a mensagem de alimentação dos animais, eles irão atender no comedouro da espécie correspondente o quanto será comido informado na mensagem. Quando termina o suprimento do zoológico, o veterinário envia uma mensagem requisitando reabastecimento do estoque para o fornecedor.
O fornecedor recebe mensagens de término da simulação e de requisição de reabastecimento.

Executar

Para compilar, existe um arquivo Makefile.
Como é utilizado a biblioteca pthread para lançamento de threads, será necessário utilizar o sistema operacional linux com a biblioteca disponível

git clone https://github.com/JelsonRodrigues/SO_zoo
cd SO_Zoo
make run

About

Repositório com o trabalho final da cadeira de Sistemas Operacionais, com a simulação de um zoológico onde cada animal é um thread

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •