Schedulers são softwares de sistema especiais que tratam da programação de processos de várias maneiras. Sua principal tarefa é selecionar as tarefas a serem enviadas ao sistema e decidir qual processo executar. Existem três tipos de Agendador :

  1. Agendador de longo prazo (trabalho) - Devido ao tamanho menor da memória principal, inicialmente todos os programas são armazenados na memória secundária. Quando são armazenados ou carregados na memória principal são chamados de processos. Esta é a decisão do planejador de longo prazo de quantos processos ficarão na fila de espera. Portanto, em palavras simples, o escalonador de longo prazo decide o grau de multiprogramação do sistema.

  2. Agendador de médio prazo - na maioria das vezes, um processo em execução precisa de uma operação de E / S que não requer CPU. Portanto, durante a execução de um processo, quando uma operação de E / S é necessária, o sistema operacional envia esse processo da fila em execução para a fila bloqueada. Quando um processo conclui sua operação de E / S, ele deve ser novamente deslocado para a fila pronta. TODAS essas decisões são tomadas pelo planejador de médio prazo. A programação de médio prazo faz parte da troca .

  3. Agendador de curto prazo (CPU) - Quando há muitos processos na memória principal, inicialmente todos estão presentes na fila de espera. Dentre todos os processos, um único processo deve ser selecionado para execução. Esta decisão é tratada pelo agendador de curto prazo.

    Vamos dar uma olhada na figura abaixo. Isso pode tornar uma visão mais clara para você.

Dispatcher -
Um dispatcher é um programa especial que entra em ação após o planejador. Quando o planejador conclui seu trabalho de seleção de um processo, é o despachante que leva esse processo para o estado / fila desejado. O despachante é o módulo que dá um controle de processo sobre a CPU depois que ele é selecionado pelo escalonador de curto prazo. Esta função envolve o seguinte:

  • Mudando de contexto
  • Mudando para o modo de usuário
  • Saltar para o local adequado no programa do usuário para reiniciar esse programa

A diferença entre o Scheduler e o Dispatcher -
Considere uma situação em que vários processos residem na fila de espera esperando para serem executados. A CPU não pode executar todos esses processos simultaneamente, então o sistema operacional deve escolher um processo específico com base no algoritmo de escalonamento usado. Portanto, este procedimento de seleção de um processo entre vários processos é feito pelo escalonador . Depois que o agendador seleciona um processo da fila, o despachante entra em cena, e é o despachante que pega esse processo da fila pronta e o move para o estado de execução. Portanto, o escalonador fornece ao despachante uma lista ordenada de processos que o despachante move para a CPU ao longo do tempo.

Exemplo -
Existem 4 processos na fila de espera, P1, P2, P3, P4; Seus tempos de chegada são t0, t1, t2, t3, respectivamente. Um algoritmo de escalonamento FIFO (First in First out) é usado. Como P1 chegou primeiro, o escalonador decidirá que é o primeiro processo que deve ser executado e o despachante removerá P1 da fila pronta e o entregará à CPU. O escalonador então determinará P2 como o próximo processo a ser executado, portanto, quando o despachante retornar à fila para um novo processo, ele pegará P2 e o entregará à CPU. Isso continua da mesma maneira para P3 e, em seguida, P4.

PropriedadesEXPEDIDORAGENDADOR
Definição:Dispatcher é um módulo que dá controle da CPU ao processo selecionado pelo planejador de curto prazoScheduler é algo que seleciona um processo entre vários processos
Tipos:Não existem tipos diferentes de despachante. É apenas um segmento de código.Existem 3 tipos de programador, ou seja, longo prazo, curto prazo, médio prazo
Dependência:O trabalho do despachante depende do agendador. Significa que o despachante tem que esperar até que o agendador selecione um processo.O Scheduler funciona de forma independente. Funciona imediatamente quando necessário
Algoritmo:O Dispatcher não possui algoritmo específico para sua implementaçãoO Scheduler funciona em vários algoritmos, como FCFS, SJF, RR etc.
Tempo necessário:O tempo gasto pelo despachante é chamado de latência de despacho.O tempo gasto pelo planejador é geralmente insignificante. Portanto, nós o negligenciamos.
Funções:O despachante também é responsável por: Mudança de contexto, mudar para modo de usuário, pular para o local adequado quando o processo for reiniciado novamenteO único trabalho do planejador é a seleção de processos.

Aprenda todos os conceitos do GATE CS com aulas gratuitas ao vivo em nosso canal do youtube.