Simulação de algoritmos de agendamento do sistema operacional para processos, por exemplo, agendamento prioritário, agendamento de vários níveis, ...


Este repositório exposto aqui é na verdade um projeto universitário do operating system do curso
E implementado com o idioma Java .
A exibição da hierarquia das classes é demonstrada aqui:
---- cpuscheduler
----------- |
----------- src
-------------------- |
-------------------- Processo // Dados de cada processo, por exemplo, horário de início, tempo de explosão, ...
-------------------- CPU // CPU para simulação
-------------------- Agendador // Classe abstrata para métodos e campos primitivos
-------------
-----------
------------------ SCH_PRIORIDADE // Agendador prioritário (pode ser preventivo)
------------------ Sch_rr // Round Robin Scheduler
------------------ SCH_LOTTERY // Lottery Scheduler
-----------
------------------ FXMLDocumentController // Controller para GUI principal
-------------------- SimulationController // Controller for Simulation GUI
----//
Processo: um processo está executando ou esperando esses dois estados são tratados:
CPU:
Agendador:
Notas
Observe que a unidade de tempo de simulação é de 0,1, portanto o tempo de burst ou o tempo de atraso deve ser múltiplo de 0,1
Observe que a ordem de cada linha especifica a ordem da chegada do processo
Observe que o formato de entrada é assim para cada linha (tempo de explosão, tempo de atraso, prioridade, nível)
Observe que a duração mínima da mudança de contexto nesta simulação é 0,4
Observe que a duração mínima do Quantum para Round Robbin Scheduler nesta simulação é 0,2 porque a unidade de tempo é 0,1 e o Quantum não pode ser menor que a unidade de tempo
Entrar tabel:
| Nome do processo | Hora de chegada | Executar tempo | Nível |
|---|---|---|---|
| 1 | 0 | 5 | 1 |
| 2 | 1 | 8 | 2 |
| 3 | 3 | 7 | 2 |
| 4 | 4 | 3 | 1 |
| 5 | 5 | 3 | 1 |
| 6 | 8 | 11 | 2 |
| 7 | 15 | 3 | 1 |
| 8 | 25 | 4 | 1 |
Por exemplo, estamos agendando o processo em vários níveis não preventivos (L1: FCFS, L2 FCFS) abaixo (arquivo input.txt)

Primeiro, inserimos as informações do processo e escolhemos agendar o alghorithm e depois pressione o botão Executar

Espere a simulação terminar

Agora você pode ver os resultados

Este projeto está licenciado sob a licença do MIT - consulte o arquivo de licença para obter detalhes