No exemplo a seguir, existem seis processos denominados P1, P2, P3, P4, P5 e P6. A hora de chegada e o tempo de explosão são fornecidos abaixo na tabela. O quantum de tempo do sistema é de 4 unidades.
ID do processo | Tempo de chegada | Tempo de explosão |
---|---|---|
1 | 0 | 5 |
2 | 1 | 6 |
3 | 2 | 3 |
4 | 3 | 1 |
5 | 4 | 5 |
6 | 6 | 4 |
De acordo com o algoritmo, temos que manter a fila de prontos e o gráfico de Gantt. A estrutura de ambas as estruturas de dados será alterada após cada agendamento.
Fila pronta:
Inicialmente, no tempo 0, chega o processo P1 que será escalonado para o intervalo de tempo 4 unidades. Portanto, na fila de prontos, haverá apenas um processo P1 na inicialização com tempo de pico de CPU de 5 unidades.
P1 |
5 |
gráfico de Gantt
O P1 será executado primeiro para 4 unidades.
texto de quebra de css
Fila pronta
Enquanto isso ocorre a execução de P1, mais quatro processos P2, P3, P4 e P5 chegam na fila de prontos. P1 ainda não foi concluído, precisa de mais 1 unidade de tempo, portanto também será adicionado novamente à fila de prontos.
P2 | P3 | P4 | P5 | P1 |
6 | 3 | 1 | 5 | 1 |
gráfico de Gantt
Após P1, P2 será executado por 4 unidades de tempo mostradas no gráfico de Gantt.
Fila pronta
Durante a execução de P2, mais um processo P6 chega na fila de prontos. Como P2 ainda não foi concluído, P2 também será adicionado de volta à fila de prontos com o tempo de rajada restante de 2 unidades.
P3 | P4 | P5 | P1 | P6 | P2 |
3 | 1 | 5 | 1 | 4 | 2 |
gráfico de Gantt
Após P1 e P2, P3 será executado por 3 unidades de tempo, pois o tempo de pico da CPU é de apenas 3 segundos.
um formulário completo
Fila pronta
Como P3 foi concluído, ele será encerrado e não será adicionado à fila de prontos. O próximo processo a ser executado é P4.
P4 | P5 | P1 | P6 | P2 |
1 | 5 | 1 | 4 | 2 |
gráfico de Gantt
Após, P1, P2 e P3, P4 serão executados. Seu tempo de explosão é de apenas 1 unidade, que é menor que o quantum de tempo, portanto, será concluído.
Fila pronta
O próximo processo na fila de prontos é P5 com 5 unidades de tempo de burst. Como P4 foi concluído, ele não será adicionado novamente à fila.
P5 | P1 | P6 | P2 |
5 | 1 | 4 | 2 |
gráfico de Gantt
P5 será executado durante todo o intervalo de tempo porque requer 5 unidades de tempo de burst que é maior que o intervalo de tempo.
Fila pronta
P5 ainda não foi concluído; ele será adicionado de volta à fila com o tempo de burst restante de 1 unidade.
numpy único
P1 | P6 | P2 | P5 |
1 | 4 | 2 | 1 |
Gráfico de Gantt
O processo P1 terá o próximo turno para completar sua execução. Como requer apenas 1 unidade de tempo de burst, será concluído.
Fila pronta
P1 foi concluído e não será adicionado novamente à fila de prontos. O próximo processo P6 requer apenas 4 unidades de tempo de burst e será executado a seguir.
P6 | P2 | P5 |
4 | 2 | 1 |
gráfico de Gantt
P6 será executado por 4 unidades de tempo até a conclusão.
Fila pronta
Como P6 foi concluído, ele não será adicionado novamente à fila. Existem apenas dois processos presentes na fila de prontos. O próximo processo P2 requer apenas 2 unidades de tempo.
P2 | P5 |
2 | 1 |
Gráfico de Gantt
P2 será executado novamente, pois requer apenas 2 unidades de tempo, portanto, será concluído.
Fila pronta
Agora, o único processo disponível na fila é o P5, que requer 1 unidade de tempo de burst. Como o intervalo de tempo é de 4 unidades, ele será concluído no próximo burst.
exemplos de programas python
P5 |
1 |
gráfico de Gantt
P5 será executado até a conclusão.
O tempo de conclusão, o tempo de resposta e o tempo de espera serão calculados conforme mostrado na tabela abaixo.
Como sabemos,
Turn Around Time = Completion Time - Arrival Time Waiting Time = Turn Around Time - Burst Time
ID do processo | Tempo de chegada | Tempo de explosão | Tempo de conclusão | Tempo de resposta | Tempo de espera |
---|---|---|---|---|---|
1 | 0 | 5 | 17 | 17 | 12 |
2 | 1 | 6 | 23 | 22 | 16 |
3 | 2 | 3 | onze | 9 | 6 |
4 | 3 | 1 | 12 | 9 | 8 |
5 | 4 | 5 | 24 | vinte | quinze |
6 | 6 | 4 | vinte e um | quinze | onze |
Tempo médio de espera = (12+16+6+8+15+11)/6 = 76/6 unidades