GitHunt
MT

mthonorio/scheduling-so-1

Projeto 1 da disciplina de Sistemas Operacionais da UFPB

Projeto da disciplina de Sistemas Operacionais 1

Este projeto foi desenvolvido para a disciplina de Sistemas Operacionais 1 no semestre 2022.1 ministrada pelo professor Fernando.

Especificação do Projeto

Implementar um conjunto de algoritmos de escalonamento de CPU e escrever um programa que calcula uma série de estatísticas baseado nestes algoritmos.

Os algoritmos de escalonamento a serem implementados são os seguintes:

  • FCFS: First-Come, First-Served
  • SJF: Shortest Job First
  • RR: Round Robin (com quantum = 2)

Deverá ler de um arquivo uma lista de processos com seus respectivos tempos de chegada e de duração e deverá imprimir na tela uma tabela contendo os valores para as seguintes métricas:

  • Tempo de retorno médio
  • Tempo de resposta médio
  • Tempo de espera médio

Input

A entrada é composta por uma série de pares de números inteiros separados por um espaço em branco indicando o tempo de chegada e a duração de cada processo. A entrada termina com o fim do arquivo.

Output

A saída é composta por linhas contendo a sigla de cada um dos três algoritmos e os valores das três métricas solicitadas.

Cada linha apresenta a sigla do algoritmo e os valores médios (com uma casa decimal) para tempo de retorno, tempo de resposta e tempo de espera, exatamente nesta ordem, separados por um espaço em branco.

Execução

Para rodar o programa é necessário passar os argumentos:

  • Operação
  • Número do Quantum para o RR
  • Arquivo de teste para a execução

Como exemplo:

python main.py

Para alterar os parâmetros ou arquivos a serem executados basta alterar as constantes do início do arquivo main.py:

file_path = "tests/sjf.txt"
quantum = 2

Languages

Python100.0%

Contributors

Created April 11, 2023
Updated May 8, 2023