Escalonamento

51
1 Escalonamento Prof. Alexandre Monteiro Recife

description

Escalonamento. Prof. Alexandre Monteiro Recife. Contatos. Prof. Guilherme Alexandre Monteiro Reinaldo Apelido: Alexandre Cordel E-mail/ gtalk : [email protected] [email protected] Site: http://www.alexandrecordel.com.br/fbv Celular: (81) 9801-1878. - PowerPoint PPT Presentation

Transcript of Escalonamento

Page 1: Escalonamento

1

Escalonamento

Prof. Alexandre Monteiro

Recife

Page 2: Escalonamento

Contatos

Prof. Guilherme Alexandre Monteiro Reinaldo

Apelido: Alexandre Cordel

E-mail/gtalk: [email protected]

[email protected]

Site: http://www.alexandrecordel.com.br/fbv

Celular: (81) 9801-1878

Page 3: Escalonamento

Introdução a Escalonamento

O escalonador é a entidade do SO responsável por selecionar um processo apto para executar no processador

O objetivo é dividir o tempo de CPU entre os processos aptos de forma justa

Típicos de sistemas multiprogramados: batch, time-sharing multiprogramado ou tempo real.

• Requisitos e restrições diferentes em relação a utilização da CPU

Duas partes• Escalonador: política de seleção• Dispatcher: efetua a troca de contexto

OBS: A parte do SO responsável por essa decisão é chamada escalonador, e o algoritmo usado para tal é chamado de algoritmo de escalonamento

Page 4: Escalonamento

Escalonamento de Processos Abstração Uma máquina para cada processo

Paralelismo realT11

T12

T0

mP1

mP2

mP3

T22mP3

Page 5: Escalonamento

Escalonamento de Processos

Realidade Compartilhamento do tempo

Pseudo-paralelismo (Concorrência)

T11T12

T0 T22 T0

1 121905141 t70

mP1

Troca de Contexto

Page 6: Escalonamento

Objetivos do Escalonamento

Maximizar a utilização do processador

Maximizar o nº de processos executados por unidade de tempo (throughput)

Minimizar o tempo total de execução de um processo (turnaround)

Minimizar o tempo de espera (na lista de processos aptos)

Minimizar o tempo de resposta decorrido entre a requisição e sua realização

Page 7: Escalonamento

Características de Escalonamento Justiça (fairness)

• Todos os processos têm chances iguais de uso dos processador

Eficiência• Taxa de ocupação do processador ao longo do tempo

Tempo de Resposta• Tempo entre a ocorrência de um evento e o término da

ação correspondente

Turnaround• “Tempo de resposta” para usuários em batch• Minimizar o tempo que usuários batch devem esperar

pelo resultado

Throughput• No. de “jobs” (processos) executados por unidade de

tempo

Page 8: Escalonamento

8

Resumindo Objetivos

Objetivos do algoritmo de escalonamento

Page 9: Escalonamento

9

EscalonamentoIntrodução ao Escalonamento (1)

• Surtos de uso da CPU alternam-se com períodos de espera por E/S

a) um processo orientado à CPU

b) um processo orientado à E/S

Page 10: Escalonamento

A importância da Interrupção Num sistema simples, CPU

deve esperar a execução do comando de E/S

• A cada chamada do comando write a CPU fica esperando o dispositivo executar o comando.

Ex: escrita em disco

SO

HD

Page 11: Escalonamento

A importância da Interrupção Um sistema com

interrupção não fica esperando

• A CPU solicita o write e fica executando outras tarefas até ser interrompida pelo disco.

Ex: escrita em disco

SO

HD

Page 12: Escalonamento

Conceitos Básicos

Operação Básica da CPU

Busca instruçãoe dados

Busca instruçãoe dados

Executa a instruçãoExecuta a instrução

Incrementa PC

Incrementa PC

1) Pára o processo atual2) Salta p/ rotina de interrupção1) Pára o processo atual2) Salta p/ rotina de interrupção

Sim

NãoInterrupção?

Cominterrupção

Page 13: Escalonamento

Interrupção do Programa

Page 14: Escalonamento

Salva resto da Informaçãodo contexto do processo

Processa rotina

de Interrupção

Restaura Informação doestado do processo em

execução antes da interrupção

Restaura PSW e PC do processo em execuçãoantes da interrupção

Dispositivo pede interrupção

Processador salva PSWe PC na pilha de controle

Processador carrega novo valor do PC

baseado na interrupção

Conceitos Básicos

Processo de Interrupção

Hardware

Software

* PSW = Program Status Word* PC = Program Counter

Page 15: Escalonamento

Situações típicas para execução do escalonador

Depende se o escalonador é preemptivo ou não- preemptivo, se considera prioridades ou não:

Sempre que a CPU estiver livre e houver um processo apto para executar

Criação e término de processos

Um processo de mais alta prioridade ficar pronto para executar

Interrupção de tempo• Processo executou por um período de tempo máximo permitido

Interrupção de E/S

Interrupção de Falta de Página em Memória• Endereço acessado não está carrego na memória (memória virtual)

Interrupção por erro

Page 16: Escalonamento

Chaveamento de Contexto (Dispatcher)

Page 17: Escalonamento

Níveis de escalonamento

Longo Prazo

Médio Prazo

Curto Prazo

Page 18: Escalonamento

Longo Prazo

Executado quando um novo processo é criado

Determina quando um processo novo passa a ser considerado no sistema, isto é, quando após sua criação passa a ser apto.

• Controle de admissão

Controla o grau de multiprogramação do sistema• Quanto maior o número de processos ativos, menor a

porcentagem de tempo de uso do processador por processo

Page 19: Escalonamento

Médio Prazo

Associado a gerencia de memória

• Participa do mecanismo de swapping (memória principal -> disco [swap out] | disco -> memória principal [swap in])

Suporte adicional a multiprogramação

• Grau de multiprogramação efetiva (diferencia aptos dos aptos-suspensos)

Page 20: Escalonamento

Curto Prazo

Mais importante, pois determina qual processo apto irá utilizar o processador

Executado sempre que ocorre eventos importantes:

• Interrupções (de relógio, E/S)• Chamada de Sistemas• Sinais (interrupções de software)

Page 21: Escalonamento

Diagrama de Escalonamento

Page 22: Escalonamento

Filas de Escalonamento

High-level (Longo Prazo)• Decide quantos programas são admitidos no sistema• Aloca memória e cria um processo• Controla a long-term queue

Short-term (Curto prazo)• Decide qual processo deve ser executado• Controla a short-term queue

I/O (Médio prazo)• Decide qual processo (com I/O) pendente deve ser tratado

pelo dispositivo de I/O• Controla a I/O queue

Page 23: Escalonamento

Filas de Escalonamento

Long-term

queue

Short-term

queue CPU

I/Oqueue

I/Oqueue

I/OqueueI/O

I/O

I/O

Processrequest FIM

High-levelscheduling

Short-termscheduling

I/O scheduling

InterruptHandler

Interruptof process

Interrupt from I/O

Page 24: Escalonamento

Exemplo

Contr. Serviços

Escalonador

contr. interrupção

Sist. Operacional

ARodando

BPronto

Outros processos

Execu-tando

Sist. Operacional

ABloquead

o

BPronto

Execu-

tandoContr. Serviços

Escalonador

contr. interrupção

Outros processos

ABloquead

o

BRodand

o Execu-

tando

Contr. Serviços

Escalonador

contr. interrupção

Outros processos

Sist. Operacional

Processo A parou. Por que?

• Req. serviço ao S.O.• Interrupção de A

Ex. erro• Interrupção de outra

fonte. Ex. I/O• Tempo acabou

Processo A parou. Por que?

• Req. serviço ao S.O.• Interrupção de A

Ex. erro• Interrupção de outra

fonte. Ex. I/O• Tempo acabou

tempo

Page 25: Escalonamento

Algoritmo de Escalonamento

Algoritmo de escalonamento escolhe qual processo deve executar em um determinado instante de tempo

Existem vários algoritmos para atingir os objetivos do escalonamento

Os algoritmos buscam:• Obter bons tempos médios (independente de critérios)• Privilegiar a variância em relação aos tempos médios

Os algoritmos estão categorizados em:• Lote• Interativo• Tempo Real

Page 26: Escalonamento

Tipos de Escalonador

Uma vez escalonado, o processo utiliza o processador até que:

Não-preemptivo (não troca de contexto):• Término de execução do processo• Execução de uma requisição de E/S ou sincronização• Liberação voluntário do processador para outro processo (yield)

Preemptivo (troca de contexto)• Término de execução do processo• Execução de uma requisição de E/S ou sincronização• Liberação voluntário do processador para outro processo (yield)• Interrupção de relógio• Processo de mais alta prioridade esteja pronto para executar

Page 27: Escalonamento

Tipos de Escalonamento

Mecanismos de Escalonamento• Preemptivo x Não-preemptivo

Políticas de Escalonamento• Round-Robin• FIFO (First-In First-Out)• Híbridos

- Partições de Lote (Batch)- MFQ - Multiple Feedback Queue

• SJF – Shortest Job First• SRJN – Shortest Remaining Job Next

Se diz que um algoritmo/sistema operacional é preemptivo quando um processo entra na CPU e o mesmo pode ser retirado da CPU antes do término da sua execução

Page 28: Escalonamento

Algoritmos de Escalonamento

Algoritmos Não-Preemptivos (cooperativos)• First-In-First-Out (FIFO) ou First-Come-First-Served

(FCFS)• Shortest Job First (SJF) ou Shortest Processo Next (SPN)

Algortimos Preemptivos• Round Robin (Circular)• Baseado em Prioridades

Existem outros algoritmos de escalonamento• High Response Ratio Next (HRRN)• Shortest Remaining Time (SRT)• Ect...

Page 29: Escalonamento

Escalonamento Preemptivo Permite a suspensão temporária de processos

Quantum ou time-slice: período de tempo durante o qual um processo usa o processador a cada vez

T11T12

T0 T22 T0

1 121905141 t70

mP1

Preempção

Page 30: Escalonamento

Quantum Quando uma tarefa recebe o processador, o núcleo ajusta

um contador de ticks que essa tarefa pode usar, ou seja, seu quantum é definido em número de ticks.

A cada tick, o contador é decrementado; quando ele chegar a zero, a tarefa perde o processador e volta à fila de prontas.

Page 31: Escalonamento

Nova visão dos Estados do Processo

Page 32: Escalonamento

Problema das trocas de processos

Mudar de um processo/tarefa para outro requer um certo tempo para a administração — salvar e carregar registradores e mapas de memória, atualizar tabelas e listas do SO, etc

Isto se chama troca de contexto Suponha que esta troca dure 5 ms Suponha também que o quantum está ajustado

em 20 ms Com esses parâmetros, após fazer 20 ms de

trabalho útil, a CPU terá que gastar 5 ms com troca de contexto. Assim, 20% do tempo de CPU (5 ms a cada 25 ms) é gasto com o overhead administrativo...

Page 33: Escalonamento

Troca de Contexto

5 ms

Page 34: Escalonamento

Solução? Para melhorar a eficiência da CPU, poderíamos ajustar o

quantum para 500 ms• Agora o tempo gasto com troca de contexto é menos do que

1% - “desprezível”...

Considere o que aconteceria se dez usuários apertassem a tecla <ENTER> exatamente ao mesmo tempo, disparando cada um processo:

• Dez processos serão colocados na lista de processo aptos a executar

• Se a CPU estiver ociosa, o primeiro começará imediatamente, o segundo não começará cerca de ½ segundo depois, e assim por diante

• O “azarado” do último processo somente começará a executar 5 segundos depois do usuário ter apertado <ENTER>, isto se todos os outros processos tiverem utilizado todo o seu quantum

• Muitos usuários vão achar que o tempo de resposta de 5 segundos para um comando simples é “muita” coisa

Page 35: Escalonamento

“Moral da estória”

Ajustar um quantum muito pequeno causa muitas trocas de contexto e diminui a eficiência da CPU, ...

...mas ajustá-lo para um valor muito alto causa um tempo de resposta inaceitável para pequenas tarefas interativas

A duração atual do quantum depende muito do tipo de sistema operacional; no Linux ela varia de 10 a 200 milissegundos, dependendo do tipo e prioridade da tarefa [Love, 2004].

Quantum grande:Diminui número de mudanças de

contexto e overhead do S.O. X Ruim para processos interativos

Quantum grande:Diminui número de mudanças de

contexto e overhead do S.O. X Ruim para processos interativos

Page 36: Escalonamento

Políticas de Escalonamento

Round-Robin Uso de uma lista de processos sem prioridade Escalonamento preemptivo Simples e justo Bom para sistemas interativos

Tar. BContextoTar. BContexto

Tar. CContextoTar. CContexto

CPU:RunningCPU:Running

Tar. AContextoTar. AContexto

Tar. AContexto

Tar. AContexto

Tar. AContexto

Round-Robin FIFO Híbrido SJF SRJN

Page 37: Escalonamento

Round Robin Cada processo recebe um tempo limitado (time slice = quantum)

para executar um ciclo de processador

Fila de processos aptos é circular

Necessita de relógio para delimitar as fatias de tempo (interrupção de tempo/relógio)

Se o (quantum = ∞) obtem-se o comportamento de um escalonador FIFO.

Tamanho do quantum igual prejudica processos I/O bound (prioridade)

Page 38: Escalonamento

Políticas de Escalonamento

First-In First-Out (FIFO) Uso de uma lista de processos sem prioridade (Fila) Escalonamento não-preemptivo Simples e justo Bom para sistemas em batch (lote)

B C D E F … N B C D E F … NCPUCPUA

FIM

Round-Robin FIFO Híbrido SJF SRJN

1. Processo aptos inseridos no final da fila

2. Processo no início da fila é o próximo.3. Processo executa até terminar, libere o

processador ou realize um chamada de sistema

Page 39: Escalonamento

Políticas de EscalonamentoFirst-In First-Out (FIFO)

Page 40: Escalonamento

Políticas de Escalonamento

Híbridos Como combinar processos batch com interativos?

Uso de Partições de Lote (batch)

• O sistema aceita tantos processos batch quantas forem as partições de lote

• O sistema aceita todos os processos interativos

• Escalonamento em dois níveis

Round-Robin FIFO Híbrido SJF SRJN

Partições de Lote (Batch)MFQ - Multiple Feedback Queue

Page 41: Escalonamento

Escalonamentos Híbridos

Partições de Lote

B C D E F … N B C D E F … NA

Memória

Partiçãode Lote

ProcessosInterativos

Processos interativos são ativados

imediatamente

Processos batch esperam a liberação do lote

Round-Robin FIFO Híbrido SJF SRJN

Page 42: Escalonamento

Escalonamentos Híbridos

Multiple Feedback Queue Como saber a priori se o processo é CPU-bound ou

I/O-bound?

MFQ usa abordagem de prioridades dinâmicas

Adaptação baseada no comportamento de cada processo

Usado no VAX / VMS (arquiteturas de computadores)

Round-Robin FIFO Híbrido SJF SRJN

Page 43: Escalonamento

Escalonamentos Híbridos

Multiple Feedback Queue

... Fila 1

... Fila 2

Fila n

Quantum

Prioridade

Novos processos entram na primeira fila (prioridade mais alta)

Se acabar o quantum desce um nível

Se requisitar E/S sobe um nível• Lembrando: I/O-bound são prioritários

...

Round-Robin FIFO Híbrido SJF SRJN

Page 44: Escalonamento

Escalonamentosbaseados no tempo de execução Shortest Job First (não-preemptivo) Shortest Remaining Job Next (preemptivo)

Melhora o tempo de resposta Não é justo: pode causar estagnação (starvation)

• Pode ser resolvida alterando a prioridade dinamicamente

Round-Robin FIFO Híbrido SJF SRJN

Exemplo de escalonamento job mais curto primeiro (Shortest Job First – SJF)

Page 45: Escalonamento

Shortest Job First

Page 46: Escalonamento

Shortest Job First

Algoritmo ótimo, fornece o menor tempo médio de espera para um conjunto de processos

Processos I/O bound são favorecidos

Dificuldade é determinar o tempo do próximo ciclo de CPU de cada processo, porém:

• Pode ser empregado em processos batch (long term scheduler)• Prever o futuro com base no passado

Page 47: Escalonamento

47

Um algoritmo de escalonamento com quatro classes de prioridade

Escalonamento em Sistemas Interativos

Page 48: Escalonamento

Como definir a Prioridade?

Prioridade Estática:

Processo é criado com determinada prioridade e esta é mantida durante todo o processo.

Prioridade Dinâmica:

Prioridade é ajustada de acordo com o estado de execução do processo e/ou sistema.

Ex. ajustar a prioridade em função da fração de quantum que foi realmente utilizada pelo processo.

• q = 100ms • Processo A = 2ms -> nova prioridade = 1/0.02 = 50• Processo B = 50ms -> nova prioridade = 1/0.5 = 2

Page 49: Escalonamento

Problemas com prioridades

Processos de baixa prioridade podem não ser executados

Postergação indefinida (starvation)

Processo com prioridade estática pode ficar mal classificado e ser penalizado ou favorecido em relação aos demais

Solução: múltiplas filas de realimentação.

Page 50: Escalonamento

ConclusõesComo funcionam dois ou mais programas ao mesmo tempo?

Conceitos• Processos x Threads (processos leves)

Interrupção• Cooperação hardware-software

Escalonamento• Tipos de processos

- CPU-bound x I/O-bound- Lote (batch) x interativo

• Filas de escalonamento- Long-term (admissão)- Short-term- I/O

Escalonamento (cont.)• Objetivos

- Justiça- Eficiência- Tempo de Resposta

• Conceitos- Preempção- Quantum (time-slice)- Troca de contexto

• Algoritmos- Propósito x Complexidade x Eficiência

Page 51: Escalonamento

Referências

Sistemas Operacionais Modernos – 3ª Edição. A. Tanenbaum, 2008.

Modern Operating Systems 3 e. Prentice-Hall, 2008.