Prática de Implementação: Simulação do Escalonamento de Tarefas em Sistemas Monoprocessados
27 de dezembro de 2024 (última atualização)
Objetivos
São dois os objetivos gerais desta prática:
- Permitir o exercício de conceitos e os algoritmos de escalonamento de tarefas em sistemas monoprocessados;
- Implementar mecanismos e políticas fundamentais para o funcionamento de sistemas operacionais, incluindo os estados dos processos, escalonamento dos processos na memória (escalonamento de longo prazo) e escalonamento dos processos no processador (escalonamento de curto prazo).
O que deve ser feito
Deve-se implementar a simulação de um sistema com escalonador de curto prazo e escalonador de longo prazo. Para o escalonador de longo prazo, deve-se usar a política de escalonamento SJF. Para o escalonador de curto prazo, devem ser implementadas três políticas alternativas (FCFS, Prioridades, Round-Robin com quantum de 20). Também deve-se propor uma nova política de escalonamento (MY) que pode ser de curto ou de longo prazo. A política MY deve ser inédita, não pode se valer de informações do futuro, não pode ser meramente aleatória e não pode requerer alterações no formato dos dados de entrada.
O programa principal desse projeto deve ler um arquivo de entrada, executar as 4 políticas de substituição e, com base nos resultados obtidos, gerar um arquivo de saída. O formato do arquivo de entrada e de saída está exemplificado abaixo. O arquivo de entrada informa o nível de multiprogramação, e, para cada processo, respectivamente, o tempo de pico de CPU e ES, bem como a sua prioridade. O tempo que dura as operações de criação de um processo (CPR), troca de contexto de processos (TCP) e término de processos (TPR) também são informados no arquivo de entrada.
Exemplo do formato do arquivo de entrada (in.txt)Multiprogramacao=2 Processos: P1=155-CPU,40-ES,5-CPU;1 P2=40-CPU,60-ES,125-CPU;2 P3=15-CPU,60-ES,15-CPU;3 P4=30-CPU,130-ES,30-CPU;0 ; Operações do SO: CPR=5 TCP=5 TPR=5Exemplo do formato do arquivo de saída (out.txt)
FCFS -TE-P1=?,?? -TE-P2=?,?? -TE-P3=?,?? -TE-P4=?,?? -TME=?,?? Prioridades-CP -TE-P1=?,?? -TE-P2=?,?? -TE-P3=?,?? -TE-P4=?,?? -TME=?,?? Round-Robin(20) -TE-P1=?,?? -TE-P2=?,?? -TE-P3=?,?? -TE-P4=?,?? -TME=?,??
Note que o nível de multiprogramação, o número de processos, o tamanho dos processos (em uso de CPU e ES) e as prioridades dos processos são dependentes do arquivo de entrada. Ou seja, tais parâmetros podem mudar dependendo do arquivo de entrada utilizado. O mesmo ocorre com o tempo de criação de um processo (CPR), tempo de troca de contexto de processos (TCP) e tempo de término de processos (TPR). É importante frisar que isso é uma simplificação para viabilizar a simulação, pois esses tempos também variam de uma máquina para outra, dependendo da velocidade da memória, do número de registradores a serem copiados e da existência de instruções especiais – como uma única instrução de carga ou armazenamento de todos os registradores.
Como tarefa de aquecimento, deve-se: 1) elaborar dois arquivos de entrada e dois arquivos de saída correspondentes que possam ser usados para teste da implementação. Tais arquivos devem ser produzidos com dados obtidos na execução manual dos algoritmos.