A seleção do qual o processo recebe o tempo da CPU em seguida é uma decisão complexa tomada pelo agendador do sistema operacional. Várias propriedades dos processos influenciam essa decisão, e a importância relativa dessas propriedades varia de acordo com o algoritmo de agendamento usado. Aqui estão algumas propriedades importantes:
*
prioridade: Cada processo é frequentemente atribuído um nível de prioridade. Os processos de prioridade mais alta geralmente obtêm tempo da CPU antes da prioridade inferior. As prioridades podem ser atribuídas estaticamente (por exemplo, com base no tipo de processo) ou dinamicamente (por exemplo, com base no uso de recursos ou tempo de espera).
*
CPU Burst na hora (ou estimada na explosão da CPU): Os processos curtos são frequentemente favorecidos para minimizar o tempo médio de espera (como visto no primeiro agendamento do trabalho mais curto). No entanto, prever com precisão o tempo de explosão pode ser um desafio.
*
Hora de chegada: O tempo que um processo se prepara para executar as decisões de agendamento de influências. Alguns algoritmos priorizam os processos que aguardam mais tempo (por exemplo, primeiro a chegar, primeiro servidos).
* Requisitos de memória
: Processos com grandes requisitos de memória podem ser penalizados se a memória for escassa, pois dando a eles a CPU pode levar a troca ou paginação excessiva, diminuindo a velocidade de todo o sistema.
*
E/O LIGADO vs. CPU LIBRENTE: Os processos ligados à E/S aguardam frequentemente as operações de E/S (acesso ao disco, comunicação de rede), enquanto os processos ligados à CPU utilizam constantemente a CPU. Os agendadores geralmente favorecem os processos ligados a E/S para melhorar a capacidade de resposta geral do sistema, pois liberam a CPU com frequência.
*
envelhecimento: O tempo de espera de um processo pode aumentar sua prioridade ao longo do tempo. Esse "envelhecimento" impede que os processos morram de fome indefinidamente.
*
Estado do processo: Somente processos no estado "pronto" são elegíveis para a alocação da CPU. Os processos bloqueados na E/S ou em outros eventos não são considerados.
*
Uso do recurso (incluindo uso da CPU): Alguns agendadores consideram o histórico de uso da CPU de um processo. Processos que monopolizaram a CPU podem ser temporariamente depresentados para garantir a justiça.
*
restrições em tempo real: Para sistemas operacionais em tempo real, os prazos são cruciais. Processos com prazos iminentes têm maior prioridade, mesmo que isso signifique preencher outros processos.
A combinação específica dessas propriedades e sua ponderação determina o comportamento do algoritmo de agendamento. Diferentes algoritmos, como Round Robin, trabalho mais curto, programação prioritária, agendamento de filas multiníveis e outros, priorize essas propriedades de maneira diferente para atingir objetivos diferentes (por exemplo, maximizar a taxa de transferência, minimizar o tempo de espera, garantir a justiça, cumprir os prazos).