Skip to content

dbuzatto/SO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🖥️ Simulador de Sistema Operacional

Simulador didático de um sistema operacional simples em Python com interface gráfica Tkinter, focado em gerenciamento básico de processos, memória e deadlocks.


📋 Funcionalidades

  • Gerenciamento de Processos: Criação, listagem, finalização individual ou em massa de processos.
  • Gerenciamento de Memória: Alocação dinâmica de memória, liberação e monitoramento do uso total.
  • Detecção e Resolução de Deadlocks: Simulação de deadlock entre processos com recursos compartilhados e possibilidade de resolver finalizando processos envolvidos.
  • Interface Gráfica com Tkinter: Menu interativo para iniciar programas, finalizar processos, listar processos ativos e simular deadlocks com escolha visual para resolver conflitos.
  • Programas Pré-definidos: Lista fictícia de programas com diferentes requisitos de memória para iniciar processos.

🚀 Como Executar

Requisitos

  • Python 3.7 ou superior
  • Tkinter instalado (normalmente já vem com Python)

Passos

  1. Clone o repositório:
git clone https://github.com/seuusuario/SO.git
cd SO.git
  1. Execute o simulador:
python main.py

📸 Exemplo da Interface

  • Tela principal com botões para iniciar programas, finalizar processos (por PID ou todos), simular deadlock e listar processos.
  • Logs de eventos e mensagens exibidos em tempo real.
  • Ao detectar deadlock, janela popup para escolha do processo a ser finalizado para resolver o conflito.

🛠️ Estrutura do Código

  • Process, ProcessManager: definem e gerenciam processos criados.
  • MemoryManager: controla uso e alocação de memória.
  • DeadlockDetector: simula solicitações de recursos e detecta ciclos de deadlock.
  • OperatingSystem: coordena todos os componentes e operações.
  • OSApp: interface gráfica em Tkinter que conecta o sistema operacional simulado com a interação do usuário.

🧪 Sobre a Simulação de Deadlock

A simulação cria dois processos que seguram recursos diferentes e solicitam o recurso um do outro, formando um ciclo clássico de deadlock. O sistema detecta esse ciclo, exibe uma mensagem e permite ao usuário escolher qual processo finalizar para resolver o deadlock, liberando recursos e memória.


👥 Autores

  • Diogo Buzatto – 111809
  • Lucas Ferreira – 111519
  • Mauricio Sarpa – 112824
  • Pablo Novais – 112070

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages