Pesquisa de site

Longest Remaining Time First (LRTF) ou Preemptive Longest Job First Algoritmo de agendamento de CPU


O algoritmo de agendamento Longest Remaining Time First (LRTF) é uma variante do algoritmo Longest Job First (LJF) e é usado pelo sistema operacional para agendar processos de entrada. No LRTF, o processo com o maior tempo de execução restante recebe a prioridade mais alta e é programado para ser executado primeiro. Em intervalos de tempo, como em cada unidade de tempo, o sistema verifica se chegou outro processo com um tempo de intermitência maior. Se tal processo existir, ele será agendado para execução antes de continuar com o processo atual. O algoritmo foi projetado para maximizar a utilização do processador e minimizar o tempo de espera dos processos.

Características do algoritmo de agendamento do Longest Remaining Time First (LRTF)

  • Longest Remaining Time First (LRTF) é um algoritmo de escalonamento de CPU popular usado para determinar a ordem em que os processos recebidos são executados de maneira sistemática.

  • O algoritmo LRTF segue uma abordagem preemptiva, onde a CPU é alocada apenas por um intervalo fixo de tempo e o processo com maior tamanho de burst é selecionado para execução.

  • O processo com o maior tamanho de rajada pode ser executado por um período fixo de tempo, após o qual o processo de seleção ocorre novamente.

  • Entretanto, o LRTF não é um algoritmo de escalonamento ideal devido ao seu alto tempo médio de espera.

  • O algoritmo LRTF prioriza processos de longa execução, fazendo com que processos mais curtos esperem, resultando em um aumento no tempo médio de espera.

Vantagens

  • O algoritmo LRTF é simples de implementar e entender, tornando-o amplamente utilizado em diversos sistemas operacionais.

  • O tempo de conclusão de quase todos os processos ocorre antes que o trabalho mais longo seja concluído.

  • O algoritmo LRTF é livre de fome, o que significa que todos os processos recebem uma parte justa da CPU.

Desvantagens

  • A troca de contexto do algoritmo LRTF utiliza tempo de CPU que poderia ser usado de forma mais produtiva para executar processos.

  • Processos mais baixos podem ter que permanecer para que a CPU termine de executar processos mais longos com tamanhos de intermitência maiores

  • Apesar de ter um tempo de burst menor para cada processo, o algoritmo LRTF possui um tempo médio de espera e um tempo médio de resposta maiores.

Algoritmo de escalonamento de CPU com maior tempo restante (LRTF)

  • Classifique os processos pela hora de chegada, em ordem crescente.

  • Escolha o processo com menor tempo de chegada, mas com maior tempo de burst.

  • Execute o processo escolhido por uma unidade de tempo.

  • Verifique se algum novo processo chegou e, em caso afirmativo, compare o tempo de intermitência restante com o processo atual. Se o novo processo tiver um tempo de intermitência restante maior, preempte o processo atual e comece a executar o novo processo.

  • Repita as etapas 2 a 4 até que todos os processos tenham sido executados.

Exemplo de tempo restante mais longo primeiro (LRTF)

Primeiro, vamos classificar os processos com base na hora de chegada -

Process

Arrival Time

Burst Time

P1

0

3

P2

1

6

P3

3

2

P4

5

3

Agora, vamos criar o gráfico de Gantt com base no Longest Remaining First Scheduling -

Explicação

  • No tempo t=0, o único processo disponível é P1 com tempo de burst 3. Assim, P1 inicia a execução.

  • No tempo t=1, P2 chega com um tempo de burst de 6, mas P1 ainda possui 2 unidades do tempo restante. Mas comparado ao P1, o P2 tem mais unidades. Assim, P2 é adicionado à fila de prontos.

  • Então, aqui P2 é repetido até t=5, depois disso comparado com P1, P2, P3 e P4 têm mais unidades. Assim, P4 é adicionado à fila de prontos.

  • Em t=6, ou seja, após a execução de P4, repetimos o mesmo processo até que todos os processos tenham sido executados.

  • No tempo t=14, P2 completa sua execução e todos os processos são concluídos.

Agora, vamos calcular o tempo de espera e o tempo de resposta de cada processo -

Visto que o tempo de conclusão (C.T) pode ser determinado diretamente pelo gráfico de Gantt, e

Tempo de entrega (TAT)

= (Hora de conclusão) – (Hora de chegada)

Além disso, tempo de espera (WT)

= (Tempo de retorno) - (Tempo de explosão)

Process

Arrival Time

Burst Time

Completion Time

Turn around Time Turn Around Time = Completion Time – Arrival Time

Waiting Time Waiting Time = Turn Around Time – Burst Time

P1

0

3

11

11-0=11

11-3=8

P2

1

6

12

12-1=11

11-6=5

P3

3

2

13

13-2=11

13-2=11

P4

5

3

14

14-5=11

11-3=8

Saída

Tempo total de resposta=36 ms

Portanto, tempo médio de resposta=44/4=11 ms

E, tempo total de espera=18 ms

Portanto, tempo médio de espera=32/4=8 ms

Conclusão

O algoritmo de agendamento Longest Remaining Time First (LRTF) é comumente usado por sistemas operacionais para garantir que o processador seja usado de forma eficiente e que os processos não precisem esperar muito. Funciona dando prioridade ao processo que tem mais tempo para ser concluído. No entanto, esse algoritmo não é perfeito porque processos menores podem ter que esperar mais tempo para que processos maiores sejam concluídos. Apesar disso, o algoritmo LRTF é fácil de entender e implementar, e geralmente termina a maioria dos processos antes que o mais longo termine. O algoritmo LRTF garante que todos os processos tenham uma chance justa de usar a CPU. No entanto, outros algoritmos de escalonamento podem ser melhores para determinados sistemas, dependendo das suas necessidades.

Artigos relacionados: