Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Algoritmos de Escalonamento em Sistemas Operacionais I, Notas de estudo de Algoritmos

Nesta aula do curso inf01142 de sistemas operacionais i, o professor marcelo johann aborda os algoritmos de escalonamento em sistemas operacionais. O documento discute os conceitos básicos de escalonamento, os escalonadores de curto, médio e longo prazo, a preemptividade e os algoritmos fifo, sjf e prioridades. Além disso, são apresentados os conceitos de quantum de tempo em round robin e múltiplas filas de prioridade preemptiva.

Tipologia: Notas de estudo

2022

Compartilhado em 07/11/2022

Brasilia80
Brasilia80 🇧🇷

4.5

(73)

219 documentos

1 / 5

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
Aula 10 : Slide 1INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2
Algoritmos de Escalonamento
Marcelo Johann
Aula 10 : Slide 2INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2
Na aula anterior
Threads
Sincronização
Semáforos
Aula 10 : Slide 3INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2
Plano da aula de Hoje
1. FIFO
2. SJF
3. Prioridade
4. Round-Robin
5. Múltiplas Filas
6. Garantido
7. Lotérico
8. Tempo-Real
Aula 10 : Slide 4INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2
Escalonamento
Definição e critérios
Quando ocorre?
1. Ao acontecer a transição executandopara bloqueado
(pergunta: quando isso acontece?)
2. Ao acontecer a transição executandopara pronto
(pergunta: quando isso acontece?)
3. Ao encerrar-se um processo.
1-2-3: o processo para de executar, e isso dispara o
escalonador.
4. Ao acontecer a transição bloqueadopara pronto”.
Pode ter sido liberado um processo importante.
Aula 10 : Slide 5INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2
Vários níveis de escalonamento
Escalonador de curto prazo
Decide da alocação da CPU
Tempo de resposta: faixa da ms
Escalonador de médio prazo
Decide do gerenciamento de memória
Swap
Tempo de resposta: faixa de 100 ms
Escalonador de longo prazo
Gerencia a criação dos processos
Escalona os acessos ao disco
Aula 10 : Slide 6INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2
Escalonador vs. dispachante
Distingue-se duas partes:
O escalonador é responsável pela escolha do processo
eleitopara usar a CPU.
O dispachante é responsável pelo lado técnico de
Salvar o processo que estava usando a CPU;
Executar o processo eleito na CPU.
Isso se chama efetuar a troca de contexto.
Salvar
Contexto
A
Salvar
Contexto
B
Restaurar
Contexto
B
Restaurar
Contexto
A
Processo A
Processo B
pf3
pf4
pf5

Pré-visualização parcial do texto

Baixe Algoritmos de Escalonamento em Sistemas Operacionais I e outras Notas de estudo em PDF para Algoritmos, somente na Docsity!

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 1

Algoritmos de Escalonamento

Marcelo Johann

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 2 Na aula anterior…

Threads

Sincronização

Semáforos

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 3 Plano da aula de Hoje

1. FIFO

2. SJF

3. Prioridade

4. Round-Robin

5. Múltiplas Filas

6. Garantido

7. Lotérico

8. Tempo-Real

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 4 Escalonamento

  • Definição e critérios
  • Quando ocorre?
  1. Ao acontecer a transição “executando” para “bloqueado” (pergunta: quando isso acontece?)
  2. Ao acontecer a transição “executando” para “pronto” (pergunta: quando isso acontece?)
  3. Ao encerrar-se um processo. 1-2-3: o processo para de executar, e isso dispara o escalonador.
  4. Ao acontecer a transição “bloqueado” para “pronto”.
    • Pode ter sido liberado um processo importante. INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 5 Vários níveis de escalonamento
  • Escalonador de curto prazo
  • Decide da alocação da CPU
  • Tempo de resposta: faixa da ms
  • Escalonador de médio prazo
  • Decide do gerenciamento de memória
  • Swap
  • Tempo de resposta: faixa de 100 ms
  • Escalonador de longo prazo
  • Gerencia a criação dos processos
  • Escalona os acessos ao disco INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 6 Escalonador vs. dispachante
  • Distingue-se duas partes:
  • O escalonador é responsável pela escolha do processo “eleito” para usar a CPU.
  • O dispachante é responsável pelo lado técnico de
  • Salvar o processo que estava usando a CPU;
  • Executar o processo eleito na CPU.
  • Isso se chama efetuar a troca de contexto. Salvar Contexto A Salvar Contexto B Restaurar Contexto B Restaurar Contexto A Processo A Processo B

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 7 Preemptar ou não preemptar?

  • Não-preempção : quando um processo executa, ele

não pode ser interrompido por um fator externo.

  • Deixa a CPU ou por vontade própria (sleep/yield), ou porque terminou.
  • Windows 3.1, Apple Mac. OS antigo (<8)
  • Os casos 1-2-3 tinham a ver com não-preempção.
  • Preempção : ato de interromper a execução de um

processo para executar um outro.

  • Sis. Op. modernos (Windows 95+, Linux)
  • Necessita sincronização!
  • Casos 3 e 4 implicam, potencialmente, em pre-empção. INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 8 Alguns algoritmos não-preemptivos - FIFO (First in, First out) - Primeiro chegado, primeiro atendido; - O mais simples; - SJF (Shortest Job First) - Necessita informações a respeito dos processos e

de sua duração!

  • Extremamente eficiente.
  • Prioridades
  • Generalização do SJF INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 9 Algoritmo First in – First out
  • O processo pronto há mais tempo passa a

usar a CPU.

  • Exemplo: 1 2 0 Hora Chegada C 4 B 3 A 24 Processo Duração A B C Duração Processos Diagrama de GANTT

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 10 FIFO – Limitações

  • A duração total não depende da ordem de escalonamento!
  • Espera por processo:
    • A espera 0 sec.
    • B espera 22 sec.
    • C espera 23 sec.
  • Espera média: (0+22+23)/3 = 15 sec.
  • Que tal com a ordem de chegada C-B-A?
    • C espera 0 sec.
    • B espera 2 sec.
    • A espera 6 sec.
  • Espera média: (0+2+6)/3 = 2,66 sec!
  • FIFO não é nada igualitário, pelo contrário é muito “ditatorial”.
  • Outro parâmetro: é inteligente escalonar primeiro os processos I/O bound! INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 11 Algoritmo Shortest Job First
  • Existem sistemas onde se tem informação

a respeito dos processos ( jobs );

  • Sistemas de batches não-interativos
  • Em geral, quer-se minimizar o turnaround (tempo de

espera dos “clientes”);

  • Seja ti o tempo de uso da CPU do processo i

(no momento da tomada de decisão!)

  • O dono de i espera W (^) i = Σj=1,…,i tj sec.
  • Mostra-se por indução que W (^) i é mínimo quando os tj estão em ordem crescente.

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 12 SJF em nosso exemplo A B C Duração Processos Diagrama de GANTT 0 0 0 Hora Chegada C 4 B 3 A 24 Processo Duração

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 19 Round-Robin: observações

  • Deve-se ter um algoritmo de desempate entre os

processos prontos quando há uma interrupção…

  • FIFO, SJF, prioridades…
  • Se o quantum aumenta muito, se obtém novamente

um FIFO.

  • Espera média:
    • A: 7
    • B: 6
    • C: 5

(comparar com 4 (SJF) e 17 (FIFO)) INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 20 Round-Robin: limitações e problemas

  • O grande interesse do R.R. é sua “equidade”
    • Todos os processos acabam tendo uma chance regular de executar.
  • Como definir o quantum?
    • Muito grande: = FIFO!
    • Muito pequeno: só se faz troca de contexto…
  • Processos I/O bound são prejudicados!
    • Esperam tanto como os outros, mas não chegam a usar seu quantum todo!
  • Solução: juntar Round Robin e prioridades com preempção INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 21 Múltiplas Filas : Prioridade preemptiva
  • Define-se prioridades para os processos.
  • Logo que surgir um processo com maior prioridade que o que está executando, ele preempta o mesmo que volta para a fila dos “prontos”.
  • Caso haja mais de um processo com uma dada prioridade, se aplica um segundo algoritmo de desempate.
  • Tipicamente Round-Robin;
  • Também pode ser um FIFO ou SJF.
  • Neste caso, obtém-se uma lista por nível de prioridades.
  • Quando uma fila está vazia, considera-se a lista de prioridade inferior.
  • Múltiplas filas, com realimentação.
  • Pode ter um algoritmo distinto de desempate em cada fila.

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 22 Definição das prioridades

  • Estática: a prioridade é dada na criação do processo
    • Pelo Sis. Op., pelo usuário…
    • Problema: há risco de postergação indefinida (starvação) para um processo com baixa prioridade.
  • Dinâmica: a prioridade evolui durante o ciclo de vida

do processo.

  • Começa com um valor estático
  • Evolui depois:
    • Aumenta a medida que o processo usa a CPU;
    • Aumenta proporcionalmente à fração do quantum que não usou.
    • Assim, os processos I/O bound voltam na fila de espera com alta prioridade! INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 23 Escalonamento Garantido
  • Em um sistema com n processos, idealmente cada processo deve receber 1/n do tempo
  • Nenhum dos algoritmos anteriores oferece qualquer garantia ou tenta se aproximar disso
  • Seja h o tempo total gasto por um processo na CPU
  • Seja t o tempo transcorrido desde sua criação
  • Então t/n é o tempo que esse processo deveria ter usado
  • Assim, f=h/(t/n) é um fator que determina se o processo usou mais ou menos do que deveria.
  • Se um processo tem f=0.5 , usou metade do tempo justo.
  • Pode-se escalonar os processos por menor valor de f.

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 24 Escalonamento Lotérico (Waldspurger e Weihl, 1994)

  • O sistema distribui bilhetes aos processos, e faz um sorteio cada vez que precisa selecionar um processo para a CPU.
  • Se cada processo tiver x% dos bilhetes, deve ganhar a CPU x% das vezes
  • Em teoria, um processo pode nunca ser sorteado.
  • Na prática, as probabilidades garantem que isso não ocorre.
  • É um escalonamento responsivo (sem filas).
  • Processos prioritários podem ganhar mais bilhetes
  • Processos cooperativos podem trocar bilhetes: Ex: clientes podem passar bilhetes para servidores

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 25 Escalonamento para Tempo Real

  • Utiliizados em Sistemas Operacionais de Tempo Real
  • Hard Real Time
  • Soft Real Time
  • Processos curtos, previsíveis, tempo conhecido
  • Eventos periódicos e aperiódicos
  • Sistemas Escalonável: somatórios de tempos/periodos < 1
  • Algoritmo de Taxa Monotônico (RM, Liu e Layland, 1973)
  • Prazo Final mais Cedo Primeiro (EDF)
  • Folga Mínima Primeiro (MLF)

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2 Aula 10 : Slide 26 Mecanismo vs Política

  • Mecanismo é o Algoritmo e/ou a Estrutura
  • Política é o conjunto de regras que é usado

para atribuir os números ou classes