Escolhemos o problema "The Santa Claus Problem" conforme descrito na página 137 do livro.
Este projeto implementa um simulador do problema do Papai Noel, utilizando múltiplas threads para modelar as interações e eventos envolvidos no cenário. O objetivo é estudar o comportamento de sistemas concorrentes e a sincronização entre threads em um ambiente multithreaded, utilizando semáforos e mutexes para controlar o acesso a recursos criticos.
Para compilar o projeto, você precisará ter instalado as bibliotecas SDL2, SDL2_images, SDL2_ttf e pthread. As instruções específicas para instalação variam dependendo do seu sistema operacional:
-
Fedora:
sudo dnf install SDL2 SDL2-devel SDL2-image SDL2-image-devel SDL2-ttf SDL2-ttf-devel
-
Arch Linux:
sudo pacman -S sdl2 sdl2_image sdl2_ttf libevent
-
Debian/Ubuntu:
sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libevent-dev
Depois de instalar as bibliotecas necessárias, execute o seguinte comando para compilar o projeto:
makePara executar o projeto, utilize o seguinte comando:
./build/santa- Makefile: Script para compilar o código-fonte.
- src/: Diretório contendo todos os arquivos de origem do projeto.
- lib/: Diretório contendo cabeçalhos necessários para a compilação e execução do projeto.
- assets/: Diretório contendo imagens e outros recursos utilizados no projeto.
- gen_headers.sh: Script para gerar os cabeçalhos com o conteúdo dos arquivos de imagem e fonte.