Você está na página 1de 3

Sistemas Operacionais

Escalonador de processos

O escalonador de processos é responsável por escolher, de forma eficiente, quais


processos serão executados pela CPU em um sistema operacional. Para isso, ele
aplica algoritmos ou políticas de escalonamento para otimizar a utilização do
processador e definir qual processo ocupará a CPU. O escalonador deve prezar
por critérios, como a utilização do processador, throughput, tempo de
processador, tempo de espera, tempo de turnaround e tempo de resposta, bem
como por objetivos, como dar privilégios para aplicações críticas, balancear o
uso da CPU entre processos, ser justo com todos os processos, maximizar a
produtividade e proporcionar menores tempos de resposta para usuários
interativos. Diferentes sistemas operacionais apresentam características de
escalonamento distintas, como o sistema operacional em tempo real e o de tempo
compartilhado. As principais situações que levam ao escalonamento são a criação
de um novo processo, o término de um processo, bloqueio do processo,
interrupção de entrada/saída e interrupções de relógio. Os algoritmos ou políticas
de escalonamento podem ser classificados em não-preemptivo e preemptivo,
sendo que no não-preemptivo um processo executa até finalizar ou até que seja
bloqueado, enquanto no escalonamento preemptivo um processo é executado por
um tempo pré-determinado e quando o tempo de execução dado ao processo
finaliza, a CPU é alocada para outro processo.

Ambientes de escalonamento: lote

Os algoritmos de escalonamento em sistemas de processamento em lote,


onde não há usuários aguardando respostas. Os algoritmos FIFO e job
mais curto primeiro (SJF) são apresentados e suas características
explicadas. O SJF é um algoritmo não-preemptivo que seleciona os jobs
mais curtos para serem executados primeiro. Uma versão preemptiva do
SJF é o algoritmo próximo de menor tempo restante, que escolhe o job
com o menor tempo restante para ser executado. A média de espera de
execução dos jobs é calculada para os dois algoritmos. A figura apresenta
quatro jobs com seus tempos de execução e mostra como a ordem de
execução afeta a média de espera. O texto também explica que quando
um novo job chega na fila de execução, seu tempo total é comparado
com o tempo restante do processo que está utilizando a CPU.

Ambientes de escalonamento: interativo

Este texto discute diferentes algoritmos de escalonamento de processos


em sistemas operacionais. O primeiro é o escalonamento Round Robin,
que organiza os processos em uma fila e cada um recebe um intervalo de
tempo máximo (quantum) para executar. Se o processo ainda estiver
executando ao final do quantum, a CPU é liberada para outro processo. O
escalonamento por prioridades atribui a cada processo uma prioridade e
um tempo máximo de execução, selecionando o processo com maior
prioridade para executar. O escalonamento garantido garante a cada
usuário um tempo igual de CPU, enquanto o escalonamento por loteria
distribui bilhetes para os processos que representam o direito a um
quantum de CPU. Por fim, o escalonamento fração justa garante que cada
usuário receba uma fração justa da CPU.

Ambientes de escalonamento: tempo real

Nesta aula aprendemos que em sistemas de tempo real, o tempo é um fator


crítico e o escalonamento por prioridades é adequado para considerar a
importância das tarefas na aplicação. No escalonamento de tempo real, a
prioridade deve ser estática e não há fatia de tempo para cada processo. O
escalonamento de threads depende se elas estão no espaço do usuário ou do
núcleo. As threads do usuário podem utilizar um escalonador específico para
uma aplicação e em Java, cada thread recebe uma prioridade que é utilizada
pelo escalonador para decidir qual thread executará em determinado momento.
Caso existam threads com a mesma prioridade alta, eles serão executados
através de alternância circular.

Você também pode gostar