Sistema operacional - agendamento de processo

Definição

O escalonamento de processos é a atividade do gerenciador de processos que trata da remoção do processo em execução da CPU e da seleção de outro processo com base em uma estratégia particular.

A programação de processos é uma parte essencial de sistemas operacionais de multiprogramação. Esses sistemas operacionais permitem que mais de um processo seja carregado na memória executável por vez e o processo carregado compartilha a CPU usando multiplexação de tempo.

Filas de agendamento de processos

O sistema operacional mantém todos os PCBs nas filas de agendamento de processos. O sistema operacional mantém uma fila separada para cada um dos estados de processo e os PCBs de todos os processos no mesmo estado de execução são colocados na mesma fila. Quando o estado de um processo é alterado, seu PCB é desvinculado de sua fila atual e movido para sua nova fila de estado.

O sistema operacional mantém as seguintes filas de agendamento de processos importantes -

  • Job queue - Esta fila mantém todos os processos do sistema.

  • Ready queue- Esta fila mantém um conjunto de todos os processos residentes na memória principal, prontos e aguardando para serem executados. Um novo processo é sempre colocado nesta fila.

  • Device queues - Os processos que são bloqueados devido à indisponibilidade de um dispositivo de E / S constituem esta fila.

O SO pode usar políticas diferentes para gerenciar cada fila (FIFO, Round Robin, Priority, etc.). O agendador do sistema operacional determina como mover processos entre as filas de prontidão e de execução, que podem ter apenas uma entrada por núcleo de processador no sistema; no diagrama acima, ele foi mesclado com a CPU.

Modelo de Processo de Dois Estados

O modelo de processo de dois estados refere-se aos estados de execução e não execução, descritos abaixo -

SN Estado e descrição
1

Running

Quando um novo processo é criado, ele entra no sistema como no estado de execução.

2

Not Running

Os processos que não estão em execução são mantidos na fila, aguardando sua vez de execução. Cada entrada na fila é um ponteiro para um processo específico. A fila é implementada usando uma lista vinculada. O uso do despachante é como segue. Quando um processo é interrompido, esse processo é transferido para a fila de espera. Se o processo foi concluído ou abortado, o processo é descartado. Em qualquer um dos casos, o despachante seleciona um processo da fila para execução.

Schedulers

Agendadores 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. Os agendadores são de três tipos -

  • Agendador de longo prazo
  • Agendador de curto prazo
  • Agendador de médio prazo

Long Term Scheduler

Também é chamado de job scheduler. Um planejador de longo prazo determina quais programas são admitidos no sistema para processamento. Ele seleciona processos da fila e os carrega na memória para execução. O processo é carregado na memória para agendamento da CPU.

O objetivo principal do agendador de tarefas é fornecer uma combinação balanceada de tarefas, como limite de E / S e limite de processador. Ele também controla o grau de multiprogramação. Se o grau de multiprogramação for estável, a taxa média de criação do processo deve ser igual à taxa média de partida dos processos que saem do sistema.

Em alguns sistemas, o agendador de longo prazo pode não estar disponível ou ser mínimo. Os sistemas operacionais de compartilhamento de tempo não têm agendador de longo prazo. Quando um processo muda de estado de novo para pronto, há o uso de um planejador de longo prazo.

Agendador de curto prazo

Também é chamado de CPU scheduler. Seu principal objetivo é aumentar o desempenho do sistema de acordo com o conjunto de critérios escolhido. É a mudança do estado de pronto para o estado de execução do processo. O escalonador de CPU seleciona um processo entre os processos que estão prontos para executar e aloca CPU para um deles.

Agendadores de curto prazo, também conhecidos como despachantes, tomam a decisão de qual processo executar em seguida. Agendadores de curto prazo são mais rápidos do que agendadores de longo prazo.

Agendador de médio prazo

A programação de médio prazo faz parte do swapping. Ele remove os processos da memória. Reduz o grau de multiprogramação. O escalonador de médio prazo é responsável por lidar com os processos de saída trocados.

Um processo em execução pode ser suspenso se fizer uma solicitação de E / S. Um processo suspenso não pode progredir em direção à conclusão. Nessa condição, para remover o processo da memória e liberar espaço para outros processos, o processo suspenso é movido para o armazenamento secundário. Este processo é chamadoswapping, e o processo será trocado ou implementado. A troca pode ser necessária para melhorar a combinação do processo.

Comparação entre Scheduler

SN Agendador de longo prazo Agendador de curto prazo Agendador de médio prazo
1 É um programador de tarefas É um agendador de CPU É um agendador de troca de processo.
2 A velocidade é menor do que o agendador de curto prazo A velocidade é a mais rápida entre outras duas A velocidade está entre o agendador de curto e longo prazo.
3 Ele controla o grau de multiprogramação Ele fornece menos controle sobre o grau de multiprogramação Reduz o grau de multiprogramação.
4 É quase ausente ou mínimo no sistema de compartilhamento de tempo Também é mínimo no sistema de compartilhamento de tempo É uma parte dos sistemas de compartilhamento de tempo.
5 Ele seleciona processos do pool e os carrega na memória para execução Ele seleciona os processos que estão prontos para executar Ele pode reintroduzir o processo na memória e a execução pode continuar.

Mudança de contexto

Uma troca de contexto é o mecanismo para armazenar e restaurar o estado ou contexto de uma CPU no bloco de Controle de Processo para que a execução de um processo possa ser retomada do mesmo ponto em um momento posterior. Usando essa técnica, um alternador de contexto permite que vários processos compartilhem uma única CPU. A troca de contexto é uma parte essencial dos recursos de um sistema operacional multitarefa.

Quando o escalonador muda a CPU de executar um processo para executar outro, o estado do processo em execução atual é armazenado no bloco de controle de processo. Depois disso, o estado do próximo processo a ser executado é carregado de seu próprio PCB e usado para definir o PC, registros, etc. Nesse ponto, o segundo processo pode começar a ser executado.

As alternâncias de contexto são computacionalmente intensivas, pois o registro e o estado da memória devem ser salvos e restaurados. Para evitar a quantidade de tempo de comutação de contexto, alguns sistemas de hardware empregam dois ou mais conjuntos de registros de processador. Quando o processo é alternado, as seguintes informações são armazenadas para uso posterior.

  • Contador de programa
  • Informação de agendamento
  • Valor de registro base e limite
  • Registro usado atualmente
  • Estado alterado
  • Informações de estado de E / S
  • Informação contábil