Você está na página 1de 32

Escalonamento/Scheduling

Sistemas Operativos

2023/2024

João L. M. Pereira
CLAV-256
joao.pedro.pereira@uevora.pt

Baseado nos slides do Capítulo 9 e 10 (Uniprocessor Scheduling e Multiprocessor and Real-time


Scheduling) do livro Operating Systems: Internals and Design Principles, 7th Edition, Dave Bremer, Otago
Polytechnic, N.Z., 2008, Prentice Hall.
Escalonamento do Processador
● Objetivo
○ atribuir processos para serem executados pelo processador
○ de uma forma que cumpra os objetivos do sistema:
■ tempos de resposta (a interações do utilizador)
■ throughput (rendimento) - numero de processos terminados por unidade de tempo
■ eficiência do processador (menos tempo parado)

● Pode ser dividido em 4 tipos:


○ Long-term scheduling
○ Medium-term scheduling
○ Short-term scheduling
○ I/O scheduling

2
Tipos de escalonamento

3
Escalonamento e Transição de Estado dos
Processos

4
Nesting de funções de
escalonamento

5
Queuing diagram

6
Long-Term Scheduler

● Determina quais os programas que são


admitidos ao sistema para
processamento
● Controla o grau de multiprogramming
○ Quando maior for o número de processos
criados

■ mais baixa é a percentagem de tempo


que cada processo pode ser executado

○ A criação de novos processos pode ser


limitada

■ para garantir uma qualidade de


serviço, considerando o conjunto de
processos atuais
7
Medium-Term Scheduling

● Faz parte do processo de swapping


● As decisões de fazer swapping-in
○ são baseadas na necessidade de gerir vários níveis de multiprogramming

○ são considerados os requisitos de memória dos processos swapped-out

8
Short-Term Scheduling

● Conhecido como dispatcher


● Executado com mais frequência
● Faz a decisão “fina” sobre quais os processos que devem ser executados a
seguir
● Invocado quando ocorre um evento que pode levar
○ bloquear um processo que está atualmente no processador; ou

○ dar oportunidade colocar outro processo a corre no processador

9
Critérios Short-Term Scheduling

● Objetivo principal é alocar tempo de processador por forma a optimizar


alguns aspetos do comportamento do sistema
● É necessário estabelecer um conjunto de critérios para avaliar as regras de
escalonamento
○ Critérios relacionados com o utilizador

■ relacionados com o comportamento do sistema, quando visto pelo lado do utilizador


ou do processo (e.g.: tempo de resposta num sistema interativo)

■ Importante em todos os sistemas

○ Critérios relacionados com o sistema

■ Foco na utilização eficiente do processador (ritmo a que os processos terminam)

■ Menos importante em sistemas “single-user”


10
Critérios Short-Term Scheduling - Desempenho

11
Critérios de
Scheduling

12
Priority Queuing

13
Regras de
Scheduling
alternativas

14
Função de seleção

● Determina qual processo, entre os processos no estado “Ready”, é


escolhido para execução
● Permite uma seleção feita com base na prioridade, requisitos de recursos,
ou características de execução do processo
● Se tiver como base características de execução, as mais importantes são
○ w = tempo em espera, até ao momento atual
○ e = tempo em execução, até ao momento atual
○ s = tempo necessário pelo processo, incluindo e;
■ normalmente, estimado ou fornecido pelo utilizador

15
Modo de decisão

● Especifica o instante no tempo em que a função de seleção é executada


● Duas categorias
○ Nonpreemptive

○ Preemptive

16
Nonpreemptive vs Preemptive

● Nonpreemptive
○ Quando um processo está no estado “running”, vai continuar até que termine, ou se
bloqueie a si mesmo devido a operações de I/O

● Preemptive
○ Processos que estão a correr podem ser interrompidos e movidos para o estado “ready”
pelo SO

○ Preemption pode ocorrer quando é criado um processo novo, com uma interrupção ou
periodicamente (intervalo de tempo)

17
Comparação de regras de escalonamento

Exemplo

18
First-Come-First-Serve (FCFS)

● Algoritmo de escalonamento mais simples


● Também conhecido de first-in-first-out (FIFO) ou “strict queing scheme”
○ Função de seleção: max(w)
● Quando o processo atual termina a execução, o mais antigo na fila “Ready” é
escolhido para execução.
● Melhor desempenho em processos longos
○ do que em processos curtos
● Tende a favorecer processos que necessitem de muito processador
○ em vez dos que precisam de muito I/O

19
Round Robin

● Usa preemption baseada num relógio


● Também conhecido por time slicing porque é dado um “time slice” a cada processo,
antes de ser “preempted”
○ Função de seleção: constante
● O principal problema é a definição do “time quantum” ou “time slice” que deve ser
usado
● Muito eficaz em sistemas “general-purpose time sharing systems” ou em sistemas de
processamento de transações
● Um dos problemas é o tratamento relativo entre processos que necessitem de muito
processador (processor-bound) e processos que necessitem de muito I/O (I/O bound)

20
Virtual Round Robin (VRR)

● RR

○ Processos processor-bound

○ Processos tendem a receber


uma porção de tempo de CPU
que não é justa

● VRR

○ existe uma fila auxiliar que tem


prioridade sobre fila principal
dos processos em estado
“Ready”

21
Shortest Process Next (SPN)

● Algoritmo nonpreemptive
○ o processo com o tempo esperado de execução mais curto é escolhido
● Um processo curto salta para a cabeça da fila
○ Função de seleção: min(s)
● Possibilidade de “starvation” para processos longos
○ Podem não ter oportunidade de serem executados
● Uma das principais dificuldades é a necessidade de saber, ou estimar, o tempo de necessário
para cada processo
● Se o programador estimar um tempo significativamente inferior, o sistema pode cancelar o
processo

22
Shortest Remaining Time (SRT)

● Versão preemptive do SPN


● Scheduler escolhe sempre o processo que apresenta o tempo de processamento esperado para a
conclusão mais curto
○ Função de seleção: min(s-e)
● Existe o risco de “starvation” para os processos mais longos
○ Podem não ter oportunidade de serem executados
● O desempenho de “turnaround” deve ser superior ao SPN
○ promove a que os estados levem menos tempo entre os estados new e exit
○ processos curtos têm preferência sobre processos longos

23
Highest Response Ratio Next (HRRN)
● Escolhe o processo com o melhor (maior) rácio
○ entre tempo “turnaround” e “tempo de serviço”
● Nonpreemptive
● Atrativo porque considera a idade do processo
● Enquanto os processos curtos são favorecidos,
○ rácio dos de processos longos sem tempo de serviço aumenta
■ eventualmente, os processo longos conseguem passar à frente dos processos curtos

24
Feedback Scheduling

● Conhecido por Multilevel Feedback

● Não utiliza o “tempo de serviço”

○ Não o precisa estimar como nos


SPN, SRT e HRRN

● É possível existir um quantum diferente


para cada fila

○ Para Qi, quantum q=2i

● É possível que exista Starvation para


processos longos

○ Uma solução é promover processos


que estejam um certo tempo em
espera a filas com prioridade mais
elevada 25
Feedback Scheduling

26
Comparação de
Algoritmos
de Scheduling

27
Fair-Share Scheduling

● Até agora, as decisões de scheduling são apenas baseadas em conjuntos


de processos
● A cada cada utilizador (não processo) é atribuída uma “fatia” do
processador
○ Fair share

● Objetivo é monitorizar a utilização, de forma a


○ Dar menos recursos aos utilizadores que tiveram mais do que deviam ter tido

○ mais recursos aos que tiverem menos do que deviam ter tido

28
Exemplo: Fair-Share Scheduling

● 50% do processador é alocado


a cada grupo/utilizador
○ Group 1 = A

○ Group 2 = B, C

29
Scheduling UNIX tradicional

● Usado no SVR3 e no BSD 4.2


○ Sistemas desenhados para ambientes interactivos de time-sharing

● Desenhados para fornecer bom tempo de resposta para utilizadores


interativos
○ enquanto garantem que jobs com uma prioridade baixa são executados (not starve)

● Usa multilevel feedback em conjunto com round robin em cada uma


das filas de prioridade
● Usa uma “preemption” de 1 segundo
● Prioridade tem como base o tipo de processo e o histórico de execução
30
Outros Schedulers
● Multiprocessor thread scheduling e atribuição de processadores

○ Load sharing

■ uma fila global de threads

○ Gang Scheduling

■ um conjunto de threads relacionadas executam ao mesmo tempo

○ Dedicated Processor Assignment

■ Contrário de load-sharing

■ Numero de threards = numero de processadores alocados

○ Dynamic Scheduling

■ número dinâmico de threads, que se altera durante a execução, pela aplicação 31


Resumo
● O sistema operativo deve fazer 3 decisões
○ Long-term: decide quando um novo processo é admitido no sistema
○ Medium-term: parte da função de swapping, e determina quando um programa é carregado
na memória
○ Short-term: decide quando um processo no estado “ready” é executado pelo processador

● Critérios de Scheduling segundo 2 pontos de vista


○ do utilizador - o tempo de resposta é a característica mais importante
○ do sistema - o throughput ou a utilização do processador é o mais importante

● Algoritmos: FCFS, Round Robin (RR and VRR), SPN, SRT, HRRN,
Multilevel Feedback
● Abordagens para multiprocessor thread scheduling e atribuição de
processadores
32

Você também pode gostar