Login Registre-se

Home > Artigos > Exemplos e Mini-Programas >

Exemplo de Simulador de escalonamento de processos de S.O

Publicado por jmayer13 em 17/09/2012 - 6.800 visualizações


comentários: 15

Exemplo de Simulador de escalonamento de processos de S.O
Escalonamento de processos é uma atividade organizacional feita pelo escalonador da CPU que possibilita executar vários processos de forma mais viável e concorrente.

Este programa simula este escalonamento através de alguns dos principais algoritmos escalonadores (FIFO, SJF-preemptivo, PRIORIDADE-preemptivo e RR).

+Dados de Entrada
-numero de processos
-burst time de cada processo (tempo de execução)
-tempo de chegada de cada processo *prioridade (quando necessário)
+Saída
-tempo de espera de cada processo
-tempo de espera médio de cada algoritmo
-turnaround médio de cada algoritmo
-mostrar qual algoritmo teve o melhor maior desempenho
+Implementar os algoritmos
-FIFO
-STF preemptivo
-PRIORIDADE preemptivo
-RR(quantum definido pelo usuário)

Classe Principal- esta classe cria a interface para o usuário inserir os dados dos processos.
Não foi aplicado um controle do usuário sofisticado para não deixar o programa muito grande.


Classe que calcula o escalonamento, é a implementação dos algoritmos escalonadores.
Depois de pegar os dados da tabela o programa define o tempo total e o número de processos, a partir de um somatório e do número de linhas da tabela respectivamente.
Primeiro é criado um vetor que representa o gráfico de Gantt do respectivo processo e é a partir dele que é definido todo o resto. Depois para determinar os tempos de espera e turnaround de cada processo é feita uma busca da primeira aparição do processo, e é subtraído o tempo atual do tempo de chegada para determinar o tempo de espera. Por fim é determinado o tempo de turnaround que é o tempo de espera mais o tempo de execução.
No caso do RR também é necessário ter um controle do quantum, para que não haja um quantum incompleto oque levaria a um erro.
Para os tempos médios primeiro é somado o tempo de espera de todos os processos, este tempo é dividido pelo número de processos para assim determinar o tempo médio de espera, no caso do tempo médio de turnaround primeiro é somado o tempo total de todos os processos e só dai é dividido pelo número de processos.


Classe que apresenta os resultados, tempos dos processos e circunda o melhor tempo.


----------------------


comentários: 15