escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •primeiro a chegar,...

31
EEL770 – Sistemas Operacionais Escalonamento Pedro Cruz

Upload: buitu

Post on 04-Dec-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

EEL770 – Sistemas Operacionais

Escalonamento

Pedro Cruz

Page 2: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Avisos

• Propostas de trabalho já foram revisadas

– Todos os grupos (que eu vi) foram comunicados

• Se você não recebeu um comunicado, me envie um email

2

Page 3: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Última aula

• Impasses

– Condições pra impasses

• Soluções para impasses

– Aceitar

– Detectar

– Evitar

– Prevenir

3

Page 4: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Estados de processos -Lembrando

4

Bloqueado

Pronto Executando

Novo Terminado

Evento

ocorreAguarda

eventoSelecionado por

escalonador

Dispensado por

escalonadorProcesso

admitido

Bloqueado/Suspenso

Pronto/Suspenso

Processo

admitido e

bloqueado

Evento

ocorre

Processo bloqueado

Processo

desbloqueado

Page 5: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Escalonamento

• Pode haver mais de um processo em estado Pronto

– Processos competem por tempo de CPU

• Escalonamento

– Decisão e atuação sobre qual processo/thread deve usar a CPU

5

Page 6: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Escalonamento - motivação

• Interatividade com usuário

• Justiça

– Entre processos/threads

– Entre usuários

• Equilíbrio da carga

– Garantir que não haja subutilização do sistema

6

Page 7: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Chaveamento entre processos

• Salvar contexto do processo que não será mais executado

– Registradores e PSW

– Memória principal

– Memória secundária

• Carregar contexto do processo que será executado

– Registradores e PSW

– Memória principal

– Memória secundária

Tempo é gasto!

Caches são perdidos! 7

Page 8: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Limitações de processos

• Limitados pela CPU

• Limitados por I/O

8

Uso de CPU

Limitado

pela CPU

Limitado

por I/O

Page 9: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Quando escalonar?

• Início de um processo

• Morte de um processo

• Bloqueio de um processo

– Qual o motivo do bloqueio?

• Interrupção de I/O

• Interrupção de relógio

– Escalonamento não-preemptivo

• Processo não sai da CPU até que seja bloqueado

– Escalonamento preemptivo

• Processo é retirado da CPU após um tempo

9

Page 10: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Algoritmos de escalonamento

• De acordo com o sistema operacional onde executam

– Lotes

– Interativo

– Tempo real

10

Page 11: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Requisitos de sistemas em lotes

• Vazão de tarefas

– Maximizar o número de tarefas executadas por tempo

• Velocidade de tarefas

– Minimizar o tempo de execução de cada tarefa

• Utilização da CPU

– Não subutilizar a CPU

11

Page 12: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Escalonamento em sistemas em lote

• Primeiro a chegar, primeiro a ser servido

• Tarefa mais curta primeiro

• Tempo restante mais curto em seguida

12

Page 13: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Primeiro a chegar,primeiro a ser servido

• CPU é subutilizada por processos limitador por I/O

• Tarefas curtas precisam aguardar tarefas longas

13

Page 14: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Tarefa mais curta primeiro

• Garante máximo de tarefas

• Só vale quando tarefas estão disponíveis de forma simultânea

• Necessário saber o tamanho das tarefas

14

Page 15: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Tempo restante mais curto em seguida

• Necessário saber o tamanho das tarefas

15

Page 16: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Requisitos de sistemas interativos

• Tempo de resposta

– Responder rápido aos usuários

• Proporcionalidade

– Atender aos usuários de forma homogênea

16

Page 17: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Escalonamento em sistemas interativos

• Chaveamento circular (round-robin)

• Escalonamento por prioridades

• Escalonamento de múltiplas filas

• Processo mais curto em seguida

• Escalonamento garantido

• Escalonamento por loteria

• Escalonamento por fração justa

17

Page 18: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Chaveamento circular(round-robin)

• Cada processo recebe um quantum para executar

– Bloqueado ao final do quantum

– Bloqueado quando realiza chamada bloqueante

• Tamanho do quantum é importante

– Por quê?

• Quantum pequeno?

• Quantum grande?

18

Page 19: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Escalonamento por prioridades

• Prioridades estáticas

– Quantum varia de acordo com prioridade

• Prioridades dinâmicas

– Processos já executados recebem prioridades menores

• Prioridades crescem com o tempo

Problema: decidir prioridades

19

Page 20: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Múltiplas filas

• Filas representam classes

– Classes inferiores recebem quantum maior

– Classes superiores são executados mais frequentemente

• Processos executados até o final de seu quantum descem pra uma classe inferior

– Reduz tempo de espera de processos limitados por CPU

– Melhora interatividade

20

Page 21: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Processo mais curto em seguida

• Processo interativo

– Espera comando -> executa comando

• Escalonador estima tempo de execução de comando

– Deixa o comando ser executado até o fim

• Estimativa é feita com média móvel

– Envelhecimento (aging)

21

Page 22: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Escalonamento garantido

• Promete tempo para processos

• Cumpre promessa

– Calcula quanto da promessa foi cumprida para processos

– Executa processo com promessa menos cumprida

22

Page 23: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Escalonamento por loteria

• Processos recebem bilhetes

– Podem receber mais ou menos bilhetes

• Implementação de prioridades

– Podem trocar bilhetes

• Implementação de cooperação

• Escalonador sorteia bilhete

– Processos com mais bilhetes têm mais chances de ganhar

• Processo dono do bilhete recebe um quantum

23

Page 24: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Escalonamento por fração justa

• Usuários são tratados de forma justa por escalonador

– Processos de um usuário não se sobrepõem aos processos de outro usuário

24

Page 25: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Requisitos de sistemasde tempo real

• Cumprir prazos

– Evitar perda de dados

– Evitar prejudicar a experiência do usuário

• Previsibilidade

– Dar qualidade a serviços de multimídia

• Atender a eventos

– Periódicos

– Não-periódicos

25

Page 26: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Escalonamento em sistemas de tempo real

• Tolerância a atrasos

– Crítico

• Não aceita atrasos

– Não-crítico

• Aceita atrasos

• Possibilidade de escalonamento

– Sistema escalonável

• Tempo exigido pelos eventos é menor ou igual que tempo disponível de CPU

26

Page 27: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Tempo de escalonamento

• Estático

– Eventos são conhecidos na inicialização

• Possível estabelecer um plano de escalonamento

• Dinâmico

– Eventos não são conhecidos na inicialização

• Necessário tomar decisões em tempo de execução

27

Page 28: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Política vs mecanismo

• Processos podem querer cooperar ao invés de competir

– Pais & filhos

• Separação de política e mecanismo pode facilitar isso

– Algoritmo de escalonamento

• Política num processo de usuário

– Parâmetros ajustáveis pelos processos

• Mecanismo no núcleo

– Execução rígida executada pelo SO

28

Page 29: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Escalonamento de threads

• Threads no espaço de usuário

– Usuário decide qual thread será executada

• Escalonamento personalizado

• Threads são chaveadas até escalonador parar o processo

• Threads de processos diferentes não podem cooperar

• Threads no espaço do núcleo

– Operacional decide qual thread será executada

• Escalonamento não pode ser personalizado

• Threads de processos diferentes podem cooperar

• Trocar threads custa trocar contextos de processos

29

Page 30: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

Fim dos processos

• Próxima matéria: memória e gerenciamento de memória

30

Page 31: Escalonamento - gta.ufrj.brcruz/courses/eel770/slides/8_escalonamen... · •Primeiro a chegar, primeiro a ser servido •Tarefa mais curta primeiro •Tempo restante mais curto em

EEL770 – Sistemas Operacionais

Escalonamento

Pedro Cruz