No momento, você está visualizando Conceitos Fundamentais sobre Sistemas Operacionais Mobiles – Escalonamentos

Conceitos Fundamentais sobre Sistemas Operacionais Mobiles – Escalonamentos

  • Última modificação do post:maio 16, 2025
  • Categoria do post:Læringsreise

Quando vários Processos estão na fila de pronto e a CPU está livre, o Sistema Operacional deve selecionar um Processo para ocupar a CPU naquele exato momento. 

Essa escolha é baseada em um critério de seleção. Cada Sistema Operacional tem um critério para determinar qual a ordem na escolha dos Processos para execução. 

A parte do S. O. a quem cabe tomar essa decisão é denominada Escalonador (Scheduler).

A política de escolha de Processos da fila de pronto para ocupar a CPU é realizada por um critério de seleção. 

A partir desse critério de seleção é criado um Algoritmo de Escalonamento.

Escalonamento não Preemptivo

Preempção é a capacidade de o Sistema Operacional intervir no fluxo de execução dos Processos. Portanto, um Sistema Operacional que utiliza um Algoritmo Não Preemptivo não terá a capacidade de intervir no fluxo de execução de um Processo.

Sendo assim, nesse tipo de Escalonamento, um Processo que assume o controle da CPU, mantém o controle até que:

  • O Processo termine:  dessa forma, o Processo sinaliza para o S. O. que executou sua última instrução;
  • O Processo necessite de uma operação de I/O (Input/Output de dados, entrada e saída de dados): quando o Processo sinaliza para o S. O. que precisa de uma operação de E/S.

Note que as duas situações citadas partem do Processo. Não é o Sistema Operacional que determina quando o Processo precisa de I/O ou quando termina.

Escalonamento FIFO (First In First Out)

Neste Escalonamento, o Processo que chegar primeiro (first in) é o primeiro a ser selecionado para execução (first out), ou seja, é uma fila tradicional. 

Quando um Processo é criado, o Sistema o coloca no final da fila de prontos. 

Como qualquer outro Algoritmo Não Preemptivo, o Processo detém o controle até terminar, ou necessitar de I/O. 

Escalonamento SJF (Shortest Job First)

Esse algoritmo de Escalonamento associa a cada Processo o seu tempo de execução, organizando a fila de prontos por esse critério. 

A fila é ordenada, portanto, do menor para o maior Processo. 

O Escalonamento SJF favorece os Processos que executam Programas menores, além de reduzir o tempo médio de espera em relação ao FIFO. 

Escalonamento Cooperativo

No Escalonamento cooperativo, um Processo que está em execução, pode voluntariamente liberar a CPU

  • Vantagens: 
    • A simplicidade para ordenar a fila de prontos (ordem de chegada);
    • O fato de não monopolizar a CPU.
  • Desvantagem: A principal desvantagem é que depende da colaboração do Processo, não tem garantia que o Processo vá deixar a CPU, pois não depende do S. O. 

Escalonamento Preemptivo

No Escalonamento preemptivo, um Processo não pode ficar no controle da CPU indefinidamente. 

O Sistema Operacional pode interromper um Processo em execução para que outro Processo utilize a CPU. 

Em geral, o Sistema Operacional pode tomar o controle da CPU de um Processo em execução por várias razões, de acordo com a lógica do algoritmo de Escalonamento utilizado.

  • O Processo termine;
  • O Processo necessite de uma operação de I/O.
    (Observação: até aqui, igual ao não preemptivo);
  • Por critério do S. O.: O Sistema Operacional pode decidir tirar o Processo em execução da CPU, seguindo um critério pré-estabelecido.

Nesse caso, o Sistema salva os dados que o Processo estava executando antes de o interromper para que ele possa retomar a execução do Processo mais tarde, sem perda de informação.

O Sistema Operacional, pode, por exemplo:

  • Dar atenção imediata a Processos mais prioritários;
  • Proporcionar melhor tempo de resposta aos usuários; 
  • Compartilhar o uso do processador de maneira mais uniforme entre os Processos.

Por outro lado, a troca de um Processo por outro na CPU gera sobrecarga no Sistema. 

Para isso não se tornar crítico, o Sistema Operacional deve estabelecer corretamente os critérios de Escalonamento. 

Como você deve ter notado, as 3 transições que estudamos no Escalonamento não preemptivo, continuam ocorrendo:

  • bulletPronto → Execução;
  • bulletExecução → Bloqueado;
  • bulletBloqueado → Pronto.

Veremos os principais algoritmos de Escalonamento a seguir.

Escalonamento Round Robin

Também denominado Escalonamento Circular ou Escalonamento por Revezamento

Inicialmente, esse algoritmo é semelhante ao FIFO, pois usa a ordem de chegada para organizar a fila de prontos. 

Porém, quando um Processo assume a CPU e passa para o estado de execução, existe um tempo-limite para a sua utilização, ou seja, nesse algoritmo, o critério do S. O. é o tempo.

Esse tempo limite é também denominado quantum (nome mais usual), ou ainda time-slice (fatia-de-tempo)

Escalonamento por Prioridade

A necessidade de se considerar alguns fatores para a escolha do próximo Processo que vai para a CPU é denominada Escalonamento por Prioridade.

A ideia básica é muito simples: cada Processo é associado a uma prioridade de acordo com a sua importância. 

A fila de prontos é organizada pelo valor da prioridade, em ordem decrescente: da maior para a menor prioridade. 

Assim, o Processo pronto com maior prioridade é aquele que vai rodar primeiro.

Toda vez que um Processo for para a fila de prontos com prioridade superior à do Processo em execução, ocorrerá preempção por prioridade:

  • O Processo em execução voltará à fila de prontos (de acordo com sua prioridade;
  • O Processo com prioridade superior assumirá o processador.