Este projeto visa simular os seguintes algoritmos de escalonamento:
- FCFS - First-come,First-served
- SJF - Shortest Job First (preemptivo e não preemptivo)
- Prioridade
- Round Robin
A simulação será feita utilizando uma interface gráfica, em que também será possível comparar o tempo de cada algoritmo de escalonamento
Esse projeto pode ser acessado também no GitHub.
o projeto possui dependências de bibliotecas externas. É recomendado que seja utilizado um ambiente virtual para não causar riscos a seu ambiente atual. Para criar um ambiente virtual usando Anaconda, execute os comandos:
conda create --name trab_SO python=3.10
conda activate trab_SO
Para construir o projeto, abra o terminal na mesma pasta em que esse README se encontra, e execute os seguintes comandos:
pip install -r requirements.txt
Para executar o programa, execute o seguinte comando no terminal:
python main.py
Important
Caso o programa não execute, será necessário rodar os seguintes comandos:
sudo apt-get update
sudo apt-get install libxcb-xinerama0 libxcb-cursor0
A interface oferece a possibilidade de escolher o scheduler de interesse e observar os resultados do processamento no lado direito. Para testar um scheduler basta selecionar sua aba no menu superior e clicar no botão "Run".
Para mudar os processos que estão sendo processados, basta alterar o arquivo "processes_definition.json". Fique a vontade para adicionar, remover ou alterar quantos processos quiser, todavia, lembre-se que um processo sempre deve ser composto de 4 atributos:
- name (Nome do processo)
- duration (Tempo de burst do processo)
- arrival_time (Tempo em que o processo chega para ser executado)
- priority (Prioridade do processo, apenas será considerado caso esteja usando o scheduler "priority")
Eduardo Lopes |
Alberto Higuti |
---|