Você está na página 1de 6

Introdução

UFPRE  O escalonador é a entidade do sistema operacional


Infra-
Infra-estrutura de Software responsável por selecionar um processo apto para executar
no processador

 O objetivo é dividir o tempo de forma justa entre os


Escalonamento de Processos processos prontos a execução

 Dependendo do tipo de sistema (batch, time-sharing,


multiprogramado ou tempo real) há requisitos e restrições
Professor: diferentes na utilização da CPU
Anderson Fabiano B. F. da Costa
afbfc@cin.ufpe.br
 Duas partes
 Escalonador (política de seleção) e Dispacther (troca de
contexto)

Objetivos do Escalonamento Níveis de Escalonamento


 Maximizar a utilização do processador  Alto Nível: determina quais programas são admitidos no
sistema.
 Maximizar a produção do sistema (throughput)  Limita ainda tempo de execução, quantidade de páginas a
 Número de processos executados por unidade de tempo serem impressas, dificulta o acesso de usuários não
cadastrados.
 Maximizar o tempo de execução (turnaround)
 Tempo total para executar um determinado processo
 Médio Nível ou Intermediário: são governados
principalmente por eventos do tipo do tipo E/S,
determinando o tipo de transação de estado que deve
 Minimizar o tempo de espera ocorrer.
 Tempo em que o processo permanece na lista de prontos
 Baixo Nível: determina quais processo em PRONTO que
 Minimizar o tempo de resposta podem passar para o controle da CPU
 É o mais difícil de implementar! (E o mais importante)

3  Outra nomenclatura: longo, médio e curto prazo 4

Estratégia de Escalonamento Escalonamento FIFO


 Há dois tipos de escalonamento de baixo nível  Definição: estratégia na qual o primeiro que entra é o
 Preemptivo e não-preemptivo primeiro que sai (First In First Out).
 O controle da CPU é dado sempre ao processo que está no
 Não-preemptivo: assume controle total da CPU, mantendo sistema há mais tempo.
seu controle até concluir o processo.
 É o mais simples, porém, tem a desvantagem de não permitir  Quando um processo é inicializado, o sistema armazena seu
que outro processo possa compartilhar da CPU. PCB no fim da fila.
 Quando a CPU está disponível, o sistema passa o controle da
 Preemptivo: o SO cede a CPU ao processo, porém poderá CPU ao processo que está na frente da fila.
o SO retomar o controle da CPU desde que julgue  O processo detém o controle até terminar, quando o SO passa
necessário. o controle ao processo da vez.

 Abordagem simples, provocando sobrecarga pequena.

5 6

1
Escalonamento FIFO Escalonamento FIFO

Processo A

Processo B
Fila dos processos no estado de Pronto
Estado de Estado de
Criação Término Processo C
UCP

10 14 17 u.t.
Tempo de
Processo processador
(u.t.)
Estado de A 10
Espera
B 4
Processo A
C 3

Processo B

Processo C

7 8
u.t.
4 7 17

Escalonamento FIFO Escalonamento FIFO


First-
First-Come,
Come, First-
First-Served (FCFS) First-
First-Come,
Come, First-
First-Served (FCFS)
Processo Burst  Suponha que o processo chegue na ordem
P1 24 P2 , P3 , P1
P2 3  O diagrama de Gantt para o escalonamento será:
P3 3
 Suponha que o processo chegue na ordem: P1 , P2 ,
P3. O diagrama de Gantt para o escalonamento será: P2 P3 P1

 Tempo de espera para P1 = 0; P2 = 24; P3 = 27


 Tempo de espera para P1 = 6; P2 = 0; P3 = 3
0 3 6 30
 Tempo de espera médio: (0 + 24 + 27)/3 = 17
 Tempo de espera médio: (6 + 0 + 3)/3 = 3

P1 P2 P3
 Muito melhor do que no caso anterior

 Efeito comboio – processo curto atrás de processo longo


0 24 27 30
9 10

Escalonamento pelo processo mais rápido Escalonamento SJF

 Tipos de estratégias: Uma estratégia que consiste em


priorizar processos rápidos
 Tarefas mais rápido primeiro (Shortest Job First - SJF).
 Outra consiste em verificar tarefas com o menor tempo
restante primeiro (Shortest Remaining Job Next - SRJN).
Processo A

 Dois esquemas Processo B


 Não-preemptivo: uma vez dada ao processo, a CPU não pode
ser preemptada até que complete seu burst de CPU (SJF)
 Preemptivo: se um novo processo chegar com tamanho de
Processo C

burst de CPU menor do que o tempo restante do processo


atualmente em execução, ele é retirado. u.t.
 Esse esquema é conhecido como “Shortest Remaining Time
3 7 17

First” (SRTF) ou “Shortest Remaining Job Next” (SRJN)

11 12

2
Exemplo de SJF não-
não-preemptivo Exemplo de SJF preemptivo
Processo chegada Burst Processo chegada Burst
P1 0.0 7 P1 0.0 7
P2 2.0 4 P2 2.0 4
P3 4.0 1 P3 4.0 1
P4 5.0 4 P4 5.0 4
 SJF (preemptivo)
 SJF (não-preemptivo)
P1 P2 P3 P2 P4 P1
P1 P3 P2 P4
0 2 4 5 7 11 16
0 3 7 8 12 16
 Tempo de espera médio = (0 + 6 + 3 + 7)/4 = 4  Tempo de espera médio = (9 + 1 + 0 +2)/4 = 3

13 14

Escalonamento pelo processo mais rápido Escalonamento por Revezamento (RR)


 Vantagens e Desvantagens: No SJF, o escalonador de  Definição: é uma abordagem preemptiva de revezamento
baixo nível simplesmente escolhe o processo no estado pronto (round robin) na qual cada processo em estado pronto tem
que tenha o menor tempo de processamento estimado, uma entrada na CPU em fila.
executando, na CPU, até o final.  Quando a CPU torna-se disponível, submete o controle ao
 Isto funciona bem em processos interativos e curtos. processo cujo PCB está em primeiro lugar na fila.

 O SJF torna-se viável se o processo não contiver muitas  A permanência do processo na CPU depende do Quantum
solicitações de E/S.  Um temporizador interno suspende qualquer processo que
 Processos rápidos têm respostas rápidas. execeda um tempo maior que um Quantum.
 A produção ( qte. processos / unid. tempo) é elevadíssima.

 O SJF maximiza o número de usuários satisfeitos com a


eficiência do sistema.

 Os métodos SJF e SJRN podem causar estagnação em


processos demorados. 15 16

Escalonamento por Revezamento (RR) Escalonamento por Revezamento (RR)

Fila dos processos no estado de Pronto Processo A


Estado de Estado de
Criação Término
UCP

Processo B
Preempção por tempo

Processo C
Estado de
Espera

2 4 6 8 10 11 17 u.t.

17 18

3
Escalonamento por Revezamento (RR) Escalonamento por Revezamento (RR)
 Tamanho do Quantum: o valor do Quantum é muito
importante e crítico no Escalonamento por Revezamento.
 Quando pequeno, força o SO a interromper os processos
muitas vezes, retardando a execução;
 Quando grande, um processo passa muito tempo na CPU,
dificultando o acesso dos processos em espera e prontos,
retardando o processamento geral. Causa degradação do
sistema.

 O valor de um Quantum é difícil de calcular, dependendo o


número de usuários, tempo de reescalonamento e da
natureza dos processos.

19 20

Exemplo de RR
Quantum de Tempo = 20 Escalonamento por Prioridade
Processo Burst  Definição: Quando a cada processo é datado de uma
P1 53 prévia classificação com relação à sua Prioridade de
P2 17 atendimento, as discussões em torno de quem atender
P3 68 tornam-se desnecessárias.
P4 24
 O problema reside, neste caso, em como priorizar um
 O diagrama de Gantt é:
processo.
 Processos com prioridade elevada provocarão grandes retardos
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 na execução de processos com baixa prioridade, o que poderá
causar dissabores junto aos usuários menos privilegiados.
0 20 37 57 77 97 117 121 134 154 162

 Um valor de prioridade (inteiro) é associado a cada processo


 Normalmente, turnaround médio mais alto do que
SJF, mas melhora a resposta
 A CPU é alocada para o processo com a prioridade mais alta
(em geral, menor inteiro = prioridade mais alta)
21 22

Escalonamento por Prioridade Escalonamento por Prioridade

Filas dos processos no estado de Pronto

Prioridade P1

Processo A
Prioridade P2 Tempo de
Processo processador Prioridade
(u.t.)
Estado de Estado de Processo B
Criação Término A 10 2
UCP
B 4 1
Prioridade Pn Processo C
C 3 3

u.t.
Preempção por prioridade
3 13 17

Estado de
Espera

23 24

4
Escalonamento por revezamento com
prioridade
Escalonamento por múltiplas filas

Fila dos processos no estado de Pronto

Prioridade P1 Fila de processos do sistema


Maior
prioridade
Prioridade P2
Fila de processos interativos
Estado de Estado de
Criação Término
UCP

Prioridade Pn UCP

Preempção por tempo ou prioridade Fila de processos batch


Menor
Estado de prioridade
Espera

25 26

Escalonamento MFQ Escalonamento MFQ


 Definição: Filas Múltiplas de Realimentação (Multilevel  Operacionalização: Cada fila tem uma prioridade de
Feedback Queues - MFQ) é o tipo no qual o execução e cada processo é alocado nas filas de acordo com
escalonamento vai depender do tipo de atividade dos a prioridade.
processos prontos, ou seja, disponíveis para execução.  Cada novo processo é alocado na primeira fila, tem prioridade
mais alta.
 Quando uma grande quantidade de E/S está ocorrendo, a  Quando ocorre disponibilidade da CPU, o escalonador procura
MFQ se assemelha a um escalonador por revezamento. a fila de prioridade mais alta, convocando o primeiro da fila.
 Quando ocorre o contrário, o escalonador tem semelhança a  O processo retém a CPU somente deixando-a quando terminar
um FIFO. ou quando solicitar E/S ou ainda quando o Quantum esgotar.
 Cada fila tem um Quantum diferente em função de sua
prioridade.
 Cada fila tem uma numeração própria, variando de 1 a n.

27 28

Escalonamento MFQ Escalonamento MFQ


 Observação: Existindo processos com uso intenso de E/S e
Menor fatia

Fila 1 (FIFO Adaptado)


Prioridade

de tempo

outros com muitos cálculos, os primeiros (E/S) retém alta


Maior

Preempção por tempo


prioridade, enquanto que os últimos terão menos
prioridades.
 Os processos com uso intenso de CPU são executados
Fila 2 (FIFO Adaptado)

somente quando não há processos com uso de E/S no estado


pronto.
Preempção por tempo

 Ideal para ambiente com processamento imprevisível.


 Estratégia utilizada comumente em SO de grande porte (tipo
Fila 3 (FIFO Adaptado) UCP

Preempção por tempo


VAX e VMS).

Fila n (Circular)
Maior fatia
Prioridade

de tempo
Menor

Preempção por tempo 29 30

5
UFPRE
Infra-
Infra-estrutura de Software

Escalonamento de Processos

Professor:
Anderson Fabiano B. F. da Costa
afbfc@cin.ufpe.br

Você também pode gostar