Prática de Implementação: Simulação do Escalonamento de Tarefas em Sistemas Monoprocessados

Lesandro Ponciano ORCID iD

27 de dezembro de 2024 (última atualização)

Objetivos

São dois os objetivos gerais desta prática:

  1. Permitir o exercício de conceitos e os algoritmos de escalonamento de tarefas em sistemas monoprocessados;
  2. 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=5
    
Exemplo 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.

Material de Apoio