slide escalonamento

25
SO - Prof. Edilberto Silva Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br http://www.edilms.eti.br Aula 10 Aula 10 Escalonamento Escalonamento Baseado no material disponibilizado por: Prof. José Juan Espantoso

Upload: caiocrq

Post on 05-Jul-2015

175 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Slide Escalonamento

SO - Prof. Edilberto Silva

Sistemas Operacionais

Prof.: Edilberto M. Silvahttp://www.edilms.eti.brhttp://www.edilms.eti.br

Aula 10Aula 10EscalonamentoEscalonamento

Baseado no material disponibilizado por:

Prof. José Juan Espantoso

Page 2: Slide Escalonamento

SO - Prof. Edilberto Silva 2

Sumário

Introdução

Funções Básicas

Critérios de escalonamento

Escalonamentos não-preemptivos e preemptivos

Escalonamento FIFO

Escalonamento SJF

Escalonamento cooperativo

Escalonamento circular

Escalonamento por prioridades

Escalonamento circular com prioridades

Page 3: Slide Escalonamento

SO - Prof. Edilberto Silva 3

Política de escalonamento – critérios utilizados para selecionar qual processo será escolhido para fazer uso do processador

A rotina do sistema operacional que tem a função de implementar os critérios da política de escalonamento é denominada escalonador(scheduler)

A rotina do sistema operacional responsável pela troca de contexto dos processos, após o escalonador determinar qual processo fará uso do processador, é denominada dispatcher.

Escalonamento de Processos

Page 4: Slide Escalonamento

SO - Prof. Edilberto Silva 4

Aplicações Concorrentes

• Escalonamento de Processos:Algoritmo para determinar qual processo deve tomar o processador para si, em um determinado momento. Algumas características são desejáveis em um bom algoritmo:– Justiça: garantir que todos os processos tenham chances

iguais de uso do processador;– Eficiência: manter o processador ocupado 100% do

tempo;– Tempo de resposta: minimizar o tempo de resposta para

usuários interativos;– Turnaround: minimizar o tempo que os usuários batch

devem esperar pela saída;– Throughput: maximizar o número de jobs processados na

unidade de tempo, usualmente hora, sistemas batch.

Page 5: Slide Escalonamento

SO - Prof. Edilberto Silva 5

As características do sistema operacional (sistemas em lote, sistemas interativos, sistemas de tempo real) diferencia quais aspectos serão considerados na política de escalonamento. Por exemplo, sistemas de tempo compartilhado exige que o escalonamento trate os processos de forma igual, evitando starvation. Em sistemas de tempo real, o escalonamento deve priorizar a execução de processo críticos em detrimento da execução de outros processos.

De uma maneira geral, qualquer política de escalonamento busca otimizar a utilização do processador e o throughput, enquanto tenta diminuir os tempos de turnaround, espera e resposta.

Escalonamento de Processos

Page 6: Slide Escalonamento

SO - Prof. Edilberto Silva 6

Escalonamento de Processos

E s t a d o   d eE s p e r a

E s t a d o   d eE x e c u ç ã o

E s t a d o   d eP r o n t o

E s c a l o n a me n t o

Page 7: Slide Escalonamento

SO - Prof. Edilberto Silva 7

Aplicações Concorrentes

Tipo de Escalonamento de Processos:– Os algoritmos de escalonamento podem ser divididos

basicamente em duas categorias:• Escalonamento Preemptivo;• Escalonamento Não-Preemptivo

– Um algoritmo de escalonamento é dito preemptivo quando o sistema pode interromper um processo em execução para que outro processo utilize o processador;

• Permite que o sistema dê atenção imediata a processos mais prioritários;

• Proporciona melhores tempos de resposta em sistemas de tempo compartilhado;

– No algoritmo não-preemptivo quando um processo ganha o direito de utilizar a UCP, nenhum outro pode lhe tirar esse recurso;

• Utilizado principalmente no processamento bach;

Page 8: Slide Escalonamento

SO - Prof. Edilberto Silva 8

Escalonamento de Processo

First-In-First-Out (FIFO):– Nesse escalonamento o processo que chegar

primeiro (first-in) é o primeiro a ser selecionado para execução (first-out);

– Considerações: • Seu algoritmo de implementação é bastante simples sendo

necessário apenas uma fila;

• Nesse esquema, um processo quando ganha o processador, utiliza a UCP sem ser interrompido;

Page 9: Slide Escalonamento

SO - Prof. Edilberto Silva 9

Escalonamento de Processo

• First-In-First-Out (FIFO):

U C P

E s t a d o   d eC r i a ç ã o

E s t a d o   d eE s p e r a

F i l a   d o s   p r o c e s s o s   n o   e s t a d o   d e   P r o n t o

E s t a d o   d eT é r m i n o

Page 10: Slide Escalonamento

SO - Prof. Edilberto Silva 10

Escalonamento de Processo

P r o c e s s o   A

P r o c e s s o   B

P r o c e s s o   C

1 0 1 4 1 7

P r o c e s s o   A

P r o c e s s o   B

P r o c e s s o   C

4 7 1 7 u . t .

u . t .

P r o c e s s oT e m p o   d e

p r o c e s s a d o r( u . t . )

A

B

C

1 0

4

3

Exemplo FIFO

Page 11: Slide Escalonamento

SO - Prof. Edilberto Silva 11

Escalonamento de Processos

• Menor Job Primeiro (Shortest Job First - SJF)– privilegia processos de tamanho menor, ou seja,

processos que ocupam por menos tempo o processador. Idealizado para processamento em lote (batch);

– Reduz o tempo médio de espera dos processos em relação ao FIFO;

– O problema desse algoritmo é determinar, exatamente, quanto tempo de UCP cada processo necessita para terminar seu processamento;

Page 12: Slide Escalonamento

SO - Prof. Edilberto Silva 12

Escalonamento de Processos

• Menor Job Primeiro (Shortest Job First - SJF)

P r o c e s s o   A

P r o c e s s o   B

P r o c e s s o   C

3 7 1 7 u . t .

Page 13: Slide Escalonamento

SO - Prof. Edilberto Silva 13

Escalonamento de Processos

• Round Robin (ou Circular): – A cada processo é atribuído um intervalo de tempo

(Quantum) durante o qual esse processo poderá usar o processador. Se, após esse intervalo, o processo ainda precisar de processamento, esse processo retornará ao final da fila para aguardar a sua próxima vez.

Page 14: Slide Escalonamento

SO - Prof. Edilberto Silva 14

Especificação de Concorrência em Programas

• Round Robin (Considerações):– Implementação relativamente fácil, pois o escalonador só

precisa manter uma lista de processos que estão prontos para executar;

– Dificuldade na determinação do tamanho do quantum, pois chavear o processador para processos diferentes implica em realizar-se troca de contexto (salvar e restaurar registradores e mapas de memória, atualizar várias tabelas e listas, entre outras tarefas):

– Quantum muito pequeno causa sucessivas trocas de contexto, diminuindo a eficiência do processador;

– Quantum muito grande pode levar a tempos de respostas inaceitáveis a usuários interativos.

Page 15: Slide Escalonamento

SO - Prof. Edilberto Silva 15

Escalonamento de Processos

Round Robin (ou Circular)

P r e e m p ç ã o   p o r   t e m p o

U C P

E s t a d o   d eC r i a ç ã o

E s t a d o   d eE s p e r a

F i l a   d o s   p r o c e s s o s   n o   e s t a d o   d e   P r o n t o

E s t a d o   d eT é r m i n o

Page 16: Slide Escalonamento

SO - Prof. Edilberto Silva 16

Escalonamento de Processos

Round Robin (ou Circular)

P r o c e s s o   A

P r o c e s s o   B

P r o c e s s o   C

2 4 1 7 u . t .6 8 1 0 1 1

Page 17: Slide Escalonamento

SO - Prof. Edilberto Silva 17

Escalonamento de Processos

Round Robin (ou Circular)

P r o c e s s o   A

P r o c e s s o   B

P r o c e s s o   C

2 4 1 7 u . t .6 8 1 0 1 1

Page 18: Slide Escalonamento

SO - Prof. Edilberto Silva 18

Escalonamento de Processos

• Escalonamento por prioridade– a cada processo é atribuída uma prioridade, e o processo

pronto que possuir maior prioridade será aquele que executará primeiro.

– A idéia é que nem todos os processos podem ser tratados de maneira igualitária, pois há fatores externos que podem determinar que alguns processos tenham mais urgência que outros.

– Problema: processos com alta prioridade podem monopolizar o processador. Para evitar esse inconveniente, pode-se decrementar (a cada interrupção de tempo) a prioridade do processo que está executando. Se esse decremento tornar o processo com uma prioridade menor que algum outro da fila, deverá ocorrer troca de contexto.

Page 19: Slide Escalonamento

SO - Prof. Edilberto Silva 19

Escalonamento de Processos

• Escalonamento por prioridade– Prioridades podem ser atribuídas estática ou

dinamicamente, Ou seja, pode-se atribuir uma prioridade ao processo antes dele começar a executar (estática) ou em tempo de execução (dinâmica).

– Alguns sistemas operacionais permitem que o próprio dono do processo (usuário) estabeleça a prioridade do seu processo. É o caso do sistema UNIX, que permite que o usuário estaticamente determine que o seu processo não possui prioridade alta (comando nice e execução em background - &).

– Pode-se fazer um escalonamento híbrido, utilizando tanto prioridades quanto round robin, através da criação de classes de prioridades, e dentro de cada classe usa-se quantum para os processos.

Page 20: Slide Escalonamento

SO - Prof. Edilberto Silva 20

Escalonamento de Processos

• Escalonamento por prioridade

U C P

E s t a d o   d eT é r m i n o

F i l a s   d o s   p r o c e s s o s   n o   e s t a d o   d e   P r o n t o

P r i o r i d a d e   P 1

P r i o r i d a d e   P 2

P r i o r i d a d e   P n

E s t a d o   d eC r i a ç ã o

E s t a d o   d eE s p e r a

P r e e m p ç ã o   p o r   p r i o r i d a d e

Page 21: Slide Escalonamento

SO - Prof. Edilberto Silva 21

Escalonamento de Processos

• Escalonamento por prioridade

P r o c e s s o   A

P r o c e s s o   B

P r o c e s s o   C

3 1 3 1 7 u . t .

P r o c e s s oT e m p o   d e

p r o c e s s a d o r( u . t . )

A

B

C

1 0

4

3

P r i o r i d a d e

2

1

3

Page 22: Slide Escalonamento

SO - Prof. Edilberto Silva 22

Especificação de Concorrência em Programas

Escalonamento por Múltiplas Filas– esse algoritmo implementa diversas filas de processo no

estado de pronto, onde cada processo é associado exclusivamente a uma delas.

– Cada fila possui um mecanismo próprio de escalonamento, em função das características do processo.

– Considerações:• Nesse esquema, os processos devem ser classificados

previamente, em função do tipo de processamento, para poderem ser encaminhados a uma determinada fila;

• Cada fila possui uma prioridade associada, que estabelece quais filas são prioritárias em relação às outras;

• O sistema só pode escalonar processo se uma fila se todas as outras de prioridade maior estiverem vazias.

Page 23: Slide Escalonamento

SO - Prof. Edilberto Silva 23

Escalonamento de Processos

Escalonamento por Múltiplas Filas

U C P

F i l a   d e   p r o c e s s o s   d o   s i s t e m a

F i l a   d e   p r o c e s s o s   i n t e r a t i v o s

F i l a   d e   p r o c e s s o s   b a t c h

M a i o rp r i o r i d a d e

M e n o rp r i o r i d a d e

Page 24: Slide Escalonamento

SO - Prof. Edilberto Silva 24

Escalonamento de Processos

• Múltiplas Filas com Realimentação: – semelhante ao escalonamento anterior, porém os processos

não permanecem em uma mesma fila até o término do processamento;

– Nesse escalonamento, o sistema tenta identificar dinamicamente o comportamento de cada processo, ajustando assim suas prioridades de execução;

– Um processo, ao ser criado, entra no final da fila de mais alta prioridade. Cada fila implementa o mecanismo de FIFO;

– Quando um processo em execução deixa a UCP, seja por preempção de prioridade ou por solicitação, ele é reescalonado dentro da mesma fila. Caso o processo esgote seu quantun de tempo, ele é redirecionado para uma fila de menor prioridade;

– A fila de mais baixa prioridade implementa o mecanismo do escalonador circular;

Page 25: Slide Escalonamento

SO - Prof. Edilberto Silva 25

Escalonamento de Processos

• Múltiplas Filas com Realimentação

U C P

F i l a   1   ( F I F O   A d a p t a d o )

P r e e m p ç ã o   p o r   t e m p o

F i l a   2   ( F I F O   A d a p t a d o )

P r e e m p ç ã o   p o r   t e m p o

F i l a   3   ( F I F O   A d a p t a d o )

P r e e m p ç ã o   p o r   t e m p o

F i l a   n   ( C i r c u l a r )

P r e e m p ç ã o   p o r   t e m p o

Me

nor

Prio

rid

ade

Ma

ior

Prio

rid

ade

Mai

or f

atia

de 

tem

po

Me

nor 

fati

ade

 tem

po