███████╗██╗ ██████╗ █████╗ ███╗ ██╗ ██████╗ ██╗ ██╗███████╗██╗██████╗ ██████╗
██╔════╝██║ ██╔══██╗██╔══██╗████╗ ██║██╔═══██╗██║ ██║██╔════╝██║██╔══██╗██╔═══██╗
█████╗ ██║ ██████╔╝███████║██╔██╗ ██║██║ ██║██║ ██║█████╗ ██║██████╔╝██║ ██║
██╔══╝ ██║ ██╔══██╗██╔══██║██║╚██╗██║██║▄▄ ██║██║ ██║██╔══╝ ██║██╔══██╗██║ ██║
███████╗███████╗ ██████╔╝██║ ██║██║ ╚████║╚██████╔╝╚██████╔╝███████╗██║██║ ██║╚██████╔╝
╚══════╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚══▀▀═╝ ╚═════╝ ╚══════╝╚═╝╚═╝ ╚═╝ ╚═════╝
O objetivo deste projeto é implementar o Algoritmo do Banqueiro, um mecanismo de escalonamento e alocação de recursos voltado para a prevenção de deadlocks em sistemas operacionais. A aplicação simula um ambiente bancário onde múltiplos clientes (threads) solicitam e liberam instâncias de recursos limitados de forma concorrente.
A solução foca em três pilares fundamentais da computação paralela:
| Pilar | Descrição |
|---|---|
| Gerenciamento de Threads | Criação e controle de múltiplos fluxos de execução simultâneos. |
| Sincronização | Uso de locks mutex para garantir a atomicidade das operações e evitar condições de corrida. |
| Segurança de Estado | Aplicação de lógica matemática para verificar se uma solicitação mantém o sistema em um "estado seguro", garantindo que a execução técnica seja livre de impasses. |
Mais detalhes do funcionamento do algoritmo estão disponíveis na documentação do código.
| Gabriel Santos Martins | Isaías Alves de Souza Santos | Lucas Moraes Rocha Spiazzi |
- Lucas Bragança da Silva
Pré-requisitos: Certifique-se de ter o Python 3.x instalado em sua máquina com o comando python --version ou python3 --version. Você pode baixar a versão mais recente do Python em python.org.
Passos:
-
Clone este repositório para sua máquina local usando o comando:
git clone https://github.com/catmaitachi/El_Banqueiro.git
-
Navegue até o diretório do projeto:
cd El_Banqueiro/code -
Execute o script principal para iniciar a simulação do Algoritmo do Banqueiro:
python main.py || python3 main.py