Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas...

32
Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos

Transcript of Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas...

Page 1: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Fundamentos de Sistemas Operacionais

Aula 8: Escalonamento

Diego Passos

Page 2: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Última Aula

Page 3: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Implementação de Processos e Threads

Bloco descritor de processo.Informações de gerência do processo.

Contexto.Informações de contabilidade.Recursos.

Processos são enfileirados.Filas de recursos.Filas de aptos (para o processador).

Page 4: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Escalonamento

Page 5: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Gerenciamento de Recursos

SO é responsável por gerenciar recursos da máquina.Há vários processos e recursos limitados.SO é responsável por escolher quem utiliza um dado recurso em um dado momento.

i.e., o SO faz o escalonamento do recurso.Recursos escalonáveis:

Processador.Dispositivos de E/S.Acesso a arquivos.

Page 6: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Escalonamento do Processador

O recurso mais importante.Todos os processos disputam o processador.Seu uso está atrelado ao da memória principal.

Quando se fala no "Escalonador do Sistema", refere-se ao escalonador do processador.

Embora existam outros escalonadores.

Page 7: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Escalonador vs. Dispatcher

Conceitos próximos, embora diferentes.Escalonador:

Realiza escolhas.Aplica uma política de escalonamento.

Dispatcher:Implementa as escolhas do escalonador.Realiza a troca de controle do dispositivo entre os processos.No caso do processador, faz a troca de contexto.

Page 8: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Objetivos de um Escalonador

Page 9: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Eficiência

Principal objetivo de qualquer escalonador.Se há demanda constante pelo recurso, este não deve ficar ocioso.

Se sempre há processos na fila de aptos, processador deve sempre estar executando processos dos usuários.

Momentos em que o recurso fica ocioso são desperdício de tempo.

Eficiência na utilização do recurso é reduzida.

Page 10: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Causas de Ineficiência (p/ o Processador)

O SO também é um programa.Em execução, pode ser visto como um processo.

Porém, é um processo de gerência.Não "interessa" ao usuário.Sua execução é considerada overhead.

Quanto mais demoradas as tarefas do SO, menos tempo sobra para as tarefas dos usuários.

Eficiência cai.

Page 11: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Definição Formal de Eficiência

U: utilização do processador.Percentual, geralmente entre 0 e 1.

Em sistemas multiprocessados, pode ser maior que 1.

t_u: tempo que o processador ficou ocupado (com tarefas do usuário).

Ou soma disso para todos os processadores.t: tempo decorrido.

Chamado de "Tempo de Parede".

U = t_u / t

Page 12: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Outros Objetivos

Há outros objetivos buscados pelos escalonadores: Vazão.Turnaround.Tempo de resposta.Justiça.Atender a prazos.

Nem sempre estes objetivos se alinham.Muitas vezes são antagônicos.Não podem ser atingidos simultaneamente.

Page 13: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Vazão

Quantidade de processos terminados por unidade de tempo.Exemplo:

Sistema tem inicialmente 8 processos.Após 40 segundos, os 8 processos estão encerrados.A vazão média é de 8/40 = 0,2 processos por segundo.

Objetivo importante em sistemas usados para grandes problemas científicos.Importante também em grandes servidores.

Cada requisição é vista como um processo.Quanto mais processos forem atendidos por unidade de tempo, melhor.

Page 14: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Turnaround

Tempo total de execução de um processo.Não é equivalente à vazão:

Vazão é uma característica do sistema.Turnaround é uma característica de um processo específico.A vazão pode ser calculada a partir do turnaround.

Recíproco das médias dos turnarounds de todos os processos.

Importante quando uma ou mais aplicações são mais importantes que as demais.

Objetivo: minimizar o turnaround destas aplicações. Pode fazer com que a execução das demais sofra, piorando a vazão.

Page 15: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Tempo de Resposta

Tamanho do intervalo entre o pedido e o início da resposta pelo sistema.

ExemplosIntervalo entre um ícone ser clicado e o início da aplicação.Intervalo entre o momento em que o freio é pressionado e o começo da desaceleração do carro.

Métrica importante em sistemas interativos.Nos quais o usuário interage com o processo em execução.Usuários preferem reações mais rápidas do sistema a quantidade de processos por unidade de tempo.

Page 16: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Justiça

Se refere a distribuição do tempo de uso do recurso pelos processos.

Quanto mais homogênea, melhor.Muitas vezes, a justiça é incompatível com outras métricas.

e.g., minimizar o turnaround de um processo significa dar mais processador a ele.

Pode levar em consideração prioridades.A divisão deixa de ser igual.Tempo de uso do recurso pelos processos passa a ser proporcional a sua prioridade.

Page 17: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Atendimento de Prazos

Objetivo mais importante em sistemas de tempo real.Tarefas têm prazos rígidos.Há penalidades, caso prazos não sejam atendidos.

Outros objetivos tornam-se secundários.

Page 18: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Tipos de Escalonador

Page 19: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Escalonadores Preemptivos vs. Não-Preemptivos

Escalonadores preemptivos podem interromper a execução de um processo.

Término do slice de tempo.Chegada de um processo com maior prioridade.

Escalonadores não-preemptivos não interrompem processos em execução.

Processos só são retirados do processador voluntariamente.

Requisição de E/S.Término.Yield.

Page 20: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Outra Classificação: De Acordo com o Prazo

Escalonadores podem ser classificados de acordo com o prazo para o efeito das suas ações.Três tipos:

Curto prazo.Médio prazo. Longo prazo.

Cada tipo atua em momentos diferentes.Seus efeitos são sentidos em momentos diferentes.

Page 21: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Escalonador de Longo Prazo

Responsável por controle de admissão.Decidir se um novo processo pode ou não ser criado.

Exemplo:Novo processo precisa ser criado.Escalonador verifica se há recursos suficientes no sistema.

e.g., memória.Se sim, processo é criado e colocado na fila de aptos.Se não:

Processo pode ser postergado.Processo pode ser rejeitado.

Page 22: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Escalonador de Médio Prazo

Participa na decisão sobre a suspensão de um processo.Se o sistema tem pouca memória, processos podem ser suspensos.

Operação de Swap.Swap-in e Swap-out

Processo é movido da memória principal para memória secundária (ou o contrário).

Escalonador de médio prazo toma a decisão.

Page 23: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Escalonador de Curto Prazo

Escolhe quais processos utilizarão o processador em cada momento.Sempre que o processador fica ocioso, este escalonador entra em ação.Aplica alguma política para escolha do processo, com base em objetivos pré-determinados.Em geral, quando se fala em escalonador, refere-se a este.

Page 24: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Exemplo

Fonte: "Sistemas Operacionais". Rômulo Oliveira, Alexandre Carissimi e Simão Toscani. 2a Edição (slides)

Page 25: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Comparação Entre os Três Tipos

Escalonador de curto prazo sempre está presente.Em sistemas que usam multi-programação.

Escalonador de médio prazo só existe em sistemas com memória virtual.

Nem todos, porém comum.Escalonador de longo prazo é mais raro.

Apenas em sistemas muito sensíveis.Sistemas que operam sob fortes restrições.

Sistemas de tempo real, por exemplo.É preciso saber se o sistema é "escalonável".

Page 26: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Momentos de Atuação

Page 27: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Quando um Escalonador Atua?

Sempre que há necessidade de escolha de um novo processo.Varia com o tipo do escalonador.

Preemptivo ou não-preemptivo.

Page 28: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Para um Escalonador Não-Preemptivo

Três momentos:Término de um processo.Requisição de E/S.Yield.

Nos três casos, processo não quer/pode mais executar.Controle volta para o SO.Se há outros processos aptos, algum deve ser escolhido.

Page 29: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Para um Escalonador Preemptivo

Além dos três anteriores:Interrupção externa.Surgimento de processo de mais alta prioridade.

Interrupções externas pode ser causadas por:Final do slice de tempo.

Outro processo tem que ganhar o processador. Fim de uma operação de E/S.

Escalonador pode recolocar processo que requisitou o E/S.

Sistema pode decidir escalonar um processo de alta prioridade assim que ele está apto.

Page 30: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Prioridades

SOs, em geral, permitem atribuições de prioridades.Valores numéricos identificando o quão importante é a execução de um processo.

Existem várias maneiras de dar prioridade a um processo sobre outros:

Dar slices de tempo maiores.Fazer com que ele "fure a fila".

A solução mais simples é a segunda:Sempre que um processo é colocado na fila de aptos, verifica-se sua prioridade.Se for mais alta que a do processo atualmente no processador, este toma sua vez.Ao escolher um novo processo, processos de alta prioridade sempre vencem.

Page 31: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Revisão

Page 32: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula...Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos

Para Lembrar

O que é um escalonador.Diferença entre escalonador e dispatcher.

Definição de eficiência.Razões para ineficiência.

Objetivos do escalonamento.Vazão e tempo de resposta.

Tipos de escalonador.Preemptivo vs. não-preemptivo.Curto prazo vs. médio prazo vs. longo prazo.

Momentos de atuação de um escalonador de curto prazo.