Escalonamento
Nestes sistemas uma tarefa pode perder o processador caso: termine sua (quantum) fatia de tempo de tempo, execute uma chamada de sistema ou caso ocorra uma interrupção que acorde uma tarefa mais prioritária (que estava suspensa aguardando um evento). A cada interrupção, exceção ou chamada de sistema, o escalonador pode reavaliar todas as tarefas da fila de prontas e decidir se mantém ou substitui a tarefa atualmente em execução.
Ex: Quando um processo é retirado da execução antes de terminar o seu (quantum) para a entrada de outro processo de maior ou mesma prioridade.
ESCALONAMENTO EM LINUX
Nesta seção, vamos ver como o Linux implementa seu escalonador e qual a política empregada para determinar quais processos recebem o processador.
No SO Linux, os processos são divididos em três grandes classes: processos interativos, processos em lote (batch) e processos tempo real.
Em cada classe, os processos podem ser subdivididos em I/O bound ou CPU bound de acordo com a proporção de tempo que ficam esperando por operações de entrada e saída ou utilizando o processador.
O escalonador do Linux não distingue processos interativos de processos batch, diferencia apenas os processos tempo real deste outros.
O escalonador do Linux privilegia os processos I/O bound em relação aos CPU bound oferecendo assim melhor tempo de resposta às aplicações interativas.
Os sistemas (time-sharing) tempo compartilhado permitem que diversos programas sejam executados a partir da divisão do tempo do processador em pequenos intervalos, denominados (quantum) fatia de tempo e são alocadas aos processos .
Esse comportamento confere ao Linux um escalonamento do tipo preemptivo.
O algoritmo de escalonamento do Linux divide o tempo de processamento em épocas (epochs). o sistema Linux trabalha com dois tipos de prioridades: estática e dinâmica.
As prioridades estáticas são utilizadas exclusivamente por processos de tempo real
O esquema de prioridades