Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

37
Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais

Transcript of Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Page 1: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Escalonamento de Processos

Métodos de escalonamento de processos em Sistemas Operacionais

Page 2: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Parte I - Fundamentos

Tipos de SOInterrupção

Tipos de ProcessosFilas de EscalonamentoTipos de Escalonamento

Page 3: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

O que é um Sistema Operacional?

• É uma máquina estendida– Oculta os detalhes complicados que têm quer ser executados– Apresenta ao usuário uma máquina virtual, mais fácil de usar

• É um gerenciador de recurso (ex. CPU)– Cada programa tem um tempo com o recurso– Cada programa tem um espaço no recurso

Page 4: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Conceitos Básicos

Tipos de S.O.

Monotarefa• Multitarefa• Monousuário• Multiusuário

Como evitar que um processo monopolize o sistema?

Sistemas de tempo compartilhado (Time Sharing Systems)• Permite sistemas interativos (entrada/saída)• Requer temporizadores (timers)• Interrupções

Page 5: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Conceitos Básicos: Tipos de S.O.

Multiprocessamento

Índ. Processo

PC

BaseLimite

Outros regs

Lista de

proc.

Proc. A.

Proc. B.

• O índice do processo contém o apontador para a lista de processos

• PC (Program Counter) = contador de programas

• Uma troca de processos consiste em trocar o valor dos registradores de contexto da CPU

Memória

...

...

...

Contexto

Dados

Código

Contexto

Dados

Código

Regs da CPU

Page 6: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Conceitos Básicos: Tipos de S.O.O que é necessário para haver multiprocessamento?

• Suporte do Hardware– Temporizadores (timers)– Interrupções– Proteção de memória

• Suporte do S.O.– Escalonamento dos processos– Alocação de memória– Gerenciamento dos periféricos

Page 7: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Conceitos Básicos:

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

Page 8: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Conceitos Básicos:

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

Page 9: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

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 PCIncrementa PC

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

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

Sim

NãoInterrupção?

Cominterrupção

Page 10: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Conceitos Básicos

Interrupção do Programa

Page 11: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

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ção

antes 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 12: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Conceitos Básicos: Tipos de S.O.

Como identificar e tratar erros?

• Uso de exceçõesInterrupções causadas por:

– Divisão por zero

– Erro de código de instrução

– Acesso indevido à memória

– Acesso indevido a dispositivos de E/S

– ...

Page 13: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Processos X Threads

• Tipos de sistemas– 1 processo com 1 thread: MSDOS– N processos, cada um com 1 thread: OS/386,

VAX/VMS, Windows 3.1, UNIX antigo– 1 processo com N threads: kernels para sistemas

embarcados– N processos, cada um com N threads: Windows

95/98,NT, UNIX

Page 14: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Escalonamento de Processos

Tipos de Processos

• CPU-bound:– Se o processo gasta a maior parte do seu tempo usando a CPU ele é

dito orientado à computação (compute-bound ou CPU-bound)

– processos com longos tempos de execução e baixo volume de comunicação entre processos

• ex: aplicações científicas, engenharia e outras aplicações que demandam alto desempenho de computação

• I/O-bound:– Se um processo passa a maior parte do tempo esperando por

dispositivos de E/S, diz-se que o processo é orientado à E/S (I/O-bound)

processos I/O-bound devem ter prioridade sobre processos CPU-bound

• Batch (lote) x Interativos

Page 15: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Escalonamento

Tipos de Processos

• Surtos de uso da CPU se alternam com períodos de espera por E/S – tipos de processo:a) orientado à CPU (CPU-bound)b) orientado à E/S (I/O-bound)

Page 16: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Escalonamento de processos

• Quando um ou mais processos estão prontos para serem executados, o sistema operacional deve decidir qual deles vai ser executado primeiro

• A parte do sistema operacional responsável por essa decisão é chamada escalonador, e o algoritmo usado para tal é chamado de algoritmo de escalonamento

Page 17: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

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

T11

T12

T0

P1

P2

P3

T22P3

Page 18: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Escalonamento de Processos

Realidade

• Compartilhamento do tempo• Pseudo-paralelismo

T11T12

T0 T22T0

1 121905141 t70

P1

Page 19: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Filas de Escalonamento

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

• Short-term– Decide qual processo deve ser executado– Controla a short-term queue

• I/O– Decide qual processo (com I/O) pendente deve ser tratado pelo

dispositivo de I/O– Controla a I/O queue

Page 20: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Filas de Escalonamento

Long-term

queue

Short-term

queueCPU

I/Oqueue

I/Oqueue

I/Oqueue

I/O

I/O

I/O

Processrequest FIM

High-levelscheduling

Short-termscheduling

I/O scheduling

InterruptHandler

Interruptof process

Interrupt from I/O

Page 21: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Exemplo

Contr. Serviços

Escalonador

contr. interrupção

Sist. Operacional

ARodando

BPronto

Outros processos

Execu-tando

Sist. Operacional

ABloqueado

BPronto

Execu-tando

Contr. Serviços

Escalonador

contr. interrupção

Outros processos

ABloqueado

BRodando

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 22: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

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 termino 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 23: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Objetivos do algoritmo de escalonamento

Page 24: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

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 25: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

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 T22T0

1 121905141 t70

P1

Preempção

Page 26: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Problema das trocas de processos• Mudar de um processo 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 27: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

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 28: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

“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

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 29: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Escalonamento – Parte II

Algoritmos

Page 30: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

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 31: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

Políticas de Escalonamento

First-In First-Out (FIFO)

• Uso de uma lista de processos sem prioridade• 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

Page 32: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

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

Segue...

Round-Robin FIFO Híbrido SJF SRJN

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

Page 33: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

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 34: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

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

Segue…

Round-Robin FIFO Híbrido SJF SRJN

Page 35: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

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 36: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

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 37: Escalonamento de Processos Métodos de escalonamento de processos em Sistemas Operacionais.

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