O trabalho consiste em simular um escalonador de 5 estados (como o visto no slide) que recebe na entrada padrão o seguinte formato que descreve os processos e a ordem em que são invocados:
([0-9]+ cpu|[0-9]+ io)+(,[0-9]+ cpu|,[0-9]+ io)* #isso é uma expressão regular
([0-9]+ cpu|[0-9]+ io)+(,[0-9]+ cpu|,[0-9]+ io)*
.
.
.
([0-9]+ cpu|[0-9]+ io)+(,[0-9]+ cpu|,[0-9]+ io)*
Exemplo:
10 cpu, 4 io, 5 cpu
7 cpu, 10 io, 3 cpu, 4 io, 3 cpu
2 cpu, 9 io, 3 cpu, 2 io, 1 cpu
Nesse exemplo, o primeiro processo a ser invocado deseja utilizar a cpu por 10 unidades de tempo, em seguida fazer uma chamada de I/O que demora 4 unidades de tempo e, por fim, utilizar a cpu por mais 5 unidades de tempo.
O escalonador funciona com sistema de interrupções e alguma política de escalonamento (decidir qual processo mover de Pronto para Em Execução) deve ser implementada. A implementação de time slices é um bônus.
A saída deverá ser quantas unidades de tempo o seu escalonador leva para executar todos os processos. Um desempenho do escalonador muito abaixo do esperado será penalizado.
Soluções para a tarefa
Respondido por
0
O escalador de processoes é um método ou atividade que é usada como sistema de distribuição que possibilita a execução de processoes que podem priorizar alguns tipos contra outras como I/O Bound e os CPU Bound.
Quando se fala em escalonador de processos de 2 níveis, o conceito é a escolha do processo que possui uma prioridade de tempo e que, se coloca, mais na memória principal. O escalonador deverá escolher quao o processo será executado por CPU,
Espero ter ajudado.
Perguntas interessantes
Matemática,
7 meses atrás
Artes,
7 meses atrás
Português,
7 meses atrás
Filosofia,
10 meses atrás
Matemática,
10 meses atrás
Matemática,
1 ano atrás
História,
1 ano atrás