Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito...

80
Escalonamento de Processos Prof. Dr. André Carvalho [email protected]

Transcript of Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito...

Page 1: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento de Processos

Prof. Dr. André Carvalho [email protected]

Page 2: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Agenda

n  Contextualização ¡  Classificação de tarefas

n  Métricas de Escalonamento n  Escalonamento de Processos n  Exemplos

2

Page 3: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Contextualização

Page 4: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Contextualização

n  Escalonar (v.t.) ¡  Dispor as tropas em escalão. ¡  Repartir por determinado espaço de

tempo; espaçar. ¡  Subir por degraus ou etapas.

4

Page 5: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Contextualização

n  O Escalonador (task scheduler) é responsável por decidir a ordem de execução dos processos prontos, ou seja, que escalona os processos.

n  O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem executados.

5

Page 6: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Contextualização

n  Contudo, para definir qual algoritmo um escalonador deve usar , é necessário conhecer as tarefas que o SO irá executar.

n  Existem vários critérios que definem o comportamento de uma tarefa. ¡  Temporal ¡  Uso de processador

6

Page 7: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Classificação de tarefas

n  Classificação de acordo com o comportamento temporal

n  Tarefas de tempo real ¡  Exigem previsibilidade dos tempos de

resposta aos eventos externos. ¡  Ex: processos industriais, tratamento de

fluxos multimídia, etc.

7

Page 8: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Classificação de tarefas

n  Tarefas interativas ¡  Recebem eventos externos e devem

respondê-los rapidamente, mas sem os requisitos das tarefas de tempo real.

¡  Ex: aplicações dos sistemas desktop e dos servidores de rede (e-mail, web, bancos de dados).

8

Page 9: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Classificação de tarefas

n  Tarefas em lote (batch) ¡  Sem requisitos temporais explícitos e que

normalmente executam sem intervenção do usuário.

¡  Ex: procedimentos de backup, varreduras de anti-vírus, cálculos numéricos longos, renderização de animações, ...

9

Page 10: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Classificação de tarefas

n  Classificação de acordo com o uso do processador

n  Tarefas orientadas a processamento: ¡  Usam intensivamente o processador. ¡  Passam a maior parte do tempo nos

estados pronta ou executando. ¡  E x : c o n v e r s ã o d e a r q u i v o s e

processamentos numéricos longos. 10

Page 11: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Classificação de tarefas

n  Tarefas orientadas a entrada/saída ¡  Dependem muito mais dos dispositivos de

entrada/saída que do processador. ¡  Passam boa parte de suas existências no

estado suspenso. ¡  Ex: editores, compiladores e servidores de

rede.

11

Page 12: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Classificação de tarefas

n  Contrariedades ¡  U m a t a r e f a p o d e m u d a r d e

comportamento ao longo de sua execução?

¡  Exemplo: WAV → MP3

12

Page 13: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Métricas de Escalonamento

Page 14: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Objetivo do escalonamento

n  Qual o objetivo do escalonamento? n  Contudo, esses objetivos podem ser

contraditórios ¡  Por exemplo, a execução de jogos exige

valores de quantum baixos, mas valores pequenos de quantum implicam em menor eficiência no uso do processador.

14

Page 15: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Métricas de escalonamento

n  Vários critérios podem ser definidos para a avaliação de escalonadores

n  Os mais frequentes são: ¡  Tempo de execução ¡  Tempo de espera ¡  Tempo de resposta ¡  Justiça ¡  Eficiência

15

Page 16: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Métricas de escalonamento

n  Tempo de execução ou de vida (turnaround time, tt) ¡  Mede o tempo decorrido entre a criação

e o encerramento da tarefa, computando todos os tempos de processamento e de espera.

¡  É uma medida típica de sistemas em lote, onde não há interação direta com os usuários.

16

Page 17: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Métricas de escalonamento

n  Tempo de espera (waiting time, tw) ¡  Tempo total perdido pela tarefa na fila de

prontos, aguardando o processador. ¡  Não inclui os tempos de espera em

operações de entrada/saída.

17

Page 18: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Métricas de escalonamento

n  Tempo de resposta (response time, tr) ¡  Tempo decorrido entre a chegada de um

evento ao sistema e o resultado imediato de seu processamento.

¡  É típica de sistemas interativos, como sistemas desktop e de tempo-real.

¡  Depende da rapidez no tratamento de IRQs e do valor do quantum de tempo.

18

Page 19: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Métricas de escalonamento

n  Justiça ¡  Distribuição do processador entre as

tarefas prontas. ¡  Tarefas com comportamento similar

d e v e m r e c e b e r t e m p o s d e processamento similares e ter durações de execução similares.

19

Page 20: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Métricas de escalonamento

n  Eficiência ¡  Ind ica o g rau de u t i l i zação do

processador na execução das tarefas do usuário.

¡  Depende da rapidez da troca de contexto e da quantidade de tarefas orientadas a entrada e saída no sistema.

20

Page 21: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento

21

Page 22: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento

n  O escalonador de um SO pode ser preemptivo ou não preemptivo

22

Page 23: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento Preemptivo

n  Em escalonadores preemptivos, uma tarefa pode perder o processador caso acabe seu quantum, execute uma chamada de sistema ou ocorra uma interrupção que acorde uma tarefa mais prioritária.

n  A cada evento, o escalonador pode reavaliar todas as tarefas da fila de prontos e decidir se mantém ou substitui a tarefa atualmente em execução.

23

Page 24: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento Preemptivo

n  As tarefas só são interrompidas quando o processador está no modo usuário ¡  A thread de núcleo correspondente a cada

tarefa não sofre interrupções. n  SOs sofisticados utilizam a preempção de

tarefas também no modo núcleo (ideal para sistemas de tempo real).

n  Núcleos de sistema que oferecem essa possibilidade são denominados núcleos preemptivos (Solaris, Linux 2.6 e Win NT) 24

Page 25: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento não-Preemptivo

n  Em escalonadores não-preemptivos, a tarefa permanece no processador tanto quanto possível, só abandonando caso termine de executar, solicite uma operação de E/S ou libere o processador.

n  Esses sistemas são também conhecidos como cooperat ivos, pois exigem a cooperação das tarefas para que todas possam executar.

25

Page 26: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento FCFS

n  O escalonamento FCFS (First-Come, First Served ) é a forma mais elementar de escalonamento.

n  Utiliza um algoritmo simples (principal vantagem) que atende as tarefas em sequência assim que ficam prontas.

n  Ou seja, de acordo com sua chegada na fila de prontos.

26

Page 27: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento FCFS

27

Tarefa Ingresso Duração

t1 0 5

t2 0 2

t3 1 4

t4 3 3

Escolamento não-preemptivo

Page 28: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento FCFS

n  Qual o tempo médio de execução dessas tarefas?

n  Qual o tempo médio de espera?

28

Page 29: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento FCFS

n  O FCFS não leva em conta a importância das tarefas nem seu comportamento em relação aos recursos. ¡  Tarefas orientadas a entrada/saída irão

receber menos tempo de processador q u e a s t a r e f a s o r i e n t a d a s a processamento, o que pode ser prejudicial para aplicações interativas.

29

Page 30: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento Round-Robin

n  É o algoritmo FCFS com a adição da p r e e m p ç ã o p o r t e m p o a o escalonamento .

n  Também chamado de escalonamento por revezamento.

30

Page 31: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento Round-Robin

31

Tempo de Quantum (tq = 2)

Page 32: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento Round-Robin

32

Page 33: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento Round-Robin

n  Qual o tempo médio de execução dessas tarefas?

n  Qual o tempo médio de espera?

33

Page 34: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Round Robin é pior que FCFS?

n  Apesar dos tempos do Round Robin serem piores neste exemplo, ele ainda tem suas aplicações. ¡  Este exemplo foi com tarefas em lote com muito

processamento. ¡  Ele distribui melhor o uso do processador entre as

tarefas ao longo do tempo ¡  proporciona tempos de resposta bem melhores às

aplicações interativas. n  Desvantagem:

¡  Aumento nas trocas de contexto.

34

Page 35: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento SJF

n  O algoritmo de escalonamento que proporciona os menores tempos médios de execução e de espera é conhec ido como menor tarefa primeiro, ou SJF (Shortest Job First).

n  Como o nome indica, consiste em atribuir o processador à menor (mais curta) tarefa da fila de tarefas prontas.

Page 36: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento SJF

36

Page 37: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento SJF

n  Qual o tempo médio de execução dessas tarefas?

n  Qual o tempo médio de espera?

37

Page 38: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento SJF

n  SJF é preemptivo ou não-preemptivo? ¡  Para uso de modo preemptivo, o

escalonador deve comparar a duração prevista de cada nova tarefa que ingressa no sistema com o tempo restante de processamento das demais tarefas, inclusive a que esta em execução.

¡  SRTF (Short Remaining Time First) 38

Page 39: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento SJF

n  Um grande problema do SJF é estimar a duração de cada tarefa antes de sua execução. o  Somente tarefas em lote ou em tempo-

real podem apresentar essa estimativa de tempo.

n  Solução: uso de preempção o  Ideal para atividades orientadas a E/S.

39

Page 40: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento SJF

n  Suponha uma tarefa de E/S ¡  Quantum = 10ms ¡  3 últimas vezes rodando: 3ms,4ms,5ms ¡  Podemos inferir qual o próximo quantum

utilizado. n  Média: 4ms n  Extrapolação: 6ms

¡  Mais custoso.

40

Page 41: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento SJF

n  Problema: Processo pode mudar de natureza. ¡  De CPU-Bound para IO-Bound, ou vice-

versa. ¡  Estimativa errada. ¡  Solução: usar poucos dados históricos

sobre os processos. n  Ex: 3 últimos.

41

Page 42: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento SJF

n  Outro problema relacionado ao SJF é a inanição (starvation) ¡  Caso o fluxo de tarefas curtas seja maior

do que as tarefas longas, as últimas provavelmente nunca serão escolhidas para receber o processador.

42

Page 43: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento por prioridades

43

Page 44: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento por Prioridades

n  Vários critérios podem ser usados para ordenar a fila de tarefas prontas e escolher a próxima tarefa a executar ¡  data de ingresso (FCFS), duração

prevista (SJF). ¡  comportamento da tarefa, proprietário e

grau de interatividade são outros exemplos.

Page 45: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento por Prioridades

n  No escalonamento por prioridades, a cada tarefa é associada uma prioridade (número inteiro) usada para escolher a próxima tarefa a receber o processador, a cada troca de contexto.

n  O algoritmo define um modelo genérico de escalonamento, que permite modelar várias abordagens, entre as quais o FCFS e o SJF.

Page 46: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento por Prioridade

46

Tarefa Ingresso Duração

t1 0 5

t2 0 2

t3 1 4

t4 3 3

Prioridade 2 3 1 4

Page 47: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento por Prioridade

n  Qual o tempo médio de execução dessas tarefas?

n  Qual o tempo médio de espera?

47

Page 48: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento por Prioridade

Tarefa Ingresso Duração

t1 0 5

t2 0 2

t3 1 4

t4 3 3

Prioridade 2 3 1 4

Page 49: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento por Prioridade

n  Qual o tempo médio de execução dessas tarefas?

n  Qual o tempo médio de espera?

49

Page 50: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Definição de Prioridades (escalonamento de Prioridades)

n  A definição da prioridade de uma tarefa é influenciada por diversos fatores, que podem ser classificados em dois grande grupos: ¡  Fatores externos ¡  Fatores internos

50

Page 51: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Definição de Prioridades (escalonamento de Prioridades)

n  Fatores externos ¡  Chamada de prioridade estática. ¡  Informações providas pelo usuário ou o

administrador do sistema. ¡  Os fatores externos mais comuns são a

classe do usuário, o valor pago pelo uso do sistema e a importância da tarefa em si.

Page 52: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Definição de Prioridades (escalonamento de Prioridades)

n  Fatores internos ¡  informações que podem ser obtidas ou

estimadas pelo escalonador. ¡  Os fatores internos mais utilizados são a

idade da tarefa, sua duração estimada, sua interatividade, seu uso de memória ou de outros recursos, etc.

Page 53: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Definição de Prioridades (escalonamento de Prioridades)

n  A combinação desses fatores gera um valor de prioridade para cada tarefa. ¡  Fatores externos usam valores inteiros

para resumir a opinião do usuário. ¡  Fatores internos mudam continuamente e

são recalculados periodicamente. n  A combinação de fatores externos e

internos gera a prioridade dinâmica, que é usada para escalonar. 53

Page 54: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Definição de Prioridades (escalonamento de Prioridades)

54

Page 55: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Definição de Prioridades (escalonamento de Prioridades)

n  Cada SO define sua própria escala de prioridades estáticas

n  Windows 2000 e sucessores ¡  Classes de prioridade para processos (6)

e threads (7) ¡  A prioridade final de uma thread depende

da sua própria prioridade e da prioridade do processo a que está associado.

¡  Valores entre 0 e 31. 55

Page 56: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Definição de Prioridades (escalonamento de Prioridades)

n  Valores padrão para Windows 2000 e sucessores ¡  4: baixa ou ociosa ¡  6: abaixo do normal ¡  8: normal ¡  10: acima do normal ¡  13: alta ¡  24: tempo-real

56

Page 57: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Definição de Prioridades (escalonamento de Prioridades)

n  Linux 2.6 e sucessores ¡  Duas escalas de prioridades

n  Tarefas de tempo-real tem prioridade de 0 (mais importante) a 99 (menos importante)

n  Tarefas interativas tem prioridades de 100 a 139

n  Tarefas de tempo-real tem precedência sobre as tarefas interativas.

57

Page 58: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Problemas (escalonamento de Prioridades)

n  Qual o problema apresentado da figura?

58

Inanição ou starvation

Page 59: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Problemas (escalonamento de Prioridades)

59

n  A solução para a inanição no escalonamento de prioridades é o uso do fator de envelhecimento (task aging).

n  O envelhecimento indica há quanto tempo uma tarefa está aguardando o processador e aumenta sua prioridade proporcionalmente.

Page 60: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Problemas (escalonamento de Prioridades)

n  Uso do envelhecimento

60

Page 61: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Problemas (escalonamento de Prioridades)

n  Outro problema é a inversão de prioridades

n  Mais complexo e envolve o conceito de exclusão mútua ¡  Alguns recursos devem ser usados por

um processo de cada vez par evitar problemas de consistência.

¡  Ex: arquivos, portas de E/S, conexões de redes.

61

Page 62: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Problemas (escalonamento de Prioridades)

n  Inversão de prioridades

62

Page 63: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Problemas (escalonamento de Prioridades)

n  Solução: Protocolo de herança de prioridade ¡  Aumentar temporariamente a prioridade

do processo interrompido (pb) que detém R.

¡  No caso da figura, pb herdaria a prioridade de pa para poder executar.

¡  Assim que liberar R, pb volta a prioridade original.

63

Page 64: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Outros algoritmos

n  Escalonadores ¡  de tempo real ¡  Multimídia ¡  Justos ¡  Multi-processador ¡  Multi-core

Page 65: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Estudos de Caso

Page 66: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Windows

n  Multilevel Feedback Queue ¡  Preferência para jobs curtos. ¡  Preferência para processos I/O Bound. ¡  Processos são separados em categorias

de acordo com a necessidade de processador.

66

Page 67: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Windows

n  Várias filas, uma para cada nível de prioridade.

n  Processos podem trocar de fila dinamicamente. ¡  Processos que usam muita CPU vão para filas

de prioridade mais baixo. n  Priorizando os que saem da CPU por suspensão e

não preempção.

¡  Processos de prioridade baixa que estão esperando muito são promovidos (Aging).

67

Page 68: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Algoritmo

n  Novos processos são inseridos no fim da fila de nível mais alto.

n  O processo que esteja na frente da fila de prioridade mais alta entra na CPU.

n  Se ele sair da CPU por “vontade própria” (chamada de sistema), quando ele voltar da suspensão ele volta na mesma fila. ¡  Dependendo do caso, ele pode ser “promovido” e subir

um nível

n  Se ele for preemptado, ele é rebaixado, e volta no fim de uma fila com prioridade mais baixa.

68

Page 69: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Windows n  Promoção e rebaixamento garantem que processos

I/O Bound tenham prioridade. ¡  Por que?

n  Filas são Round Robin. n  Escalonador sempre pega processos da fila de

maior prioridade. ¡  Só se uma fila alta estiver vazia que ele vai para uma

mais baixa.

n  Processos sempre entram na mais alta pois assume-se que serão processos curtos. ¡  Se forem longos, naturalmente irão sendo rebaixados. ¡  Um processo só tem uma única chance de terminar seu

quantum em um dado nível de prioridade. 69

Page 70: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Windows n  Parâmetros de escalonamento que não

temos certeza como são em versões recentes do Windows: ¡  Número de filas. ¡  Algoritmo de cada fila. ¡  Critérios de promoção e rebaixamento. ¡  Em que fila um processo entra.

n  Windows tem algumas heurísticas para garantir que alguns processos, como defrag, nunca subam muito de prioridade.

70

Page 71: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Linux

n  Desde o 2.6, o Linux tem um escalonador que é considerados por muitos o estado da arte em termos de sistemas reais.

71

Page 72: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Linux

n  Filosofia: ¡  Quantum mais alto para processos

importantes. ¡  Quantum variável baseado em uso de

CPU. ¡  Processos são alocados para CPUs

específicas. ¡  O(1)

72

Page 73: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Filas

n  Cada processador tem uma fila. ¡  Processador só pega processos da sua

própria fila. ¡  Pode ocorrer de um processador ter jobs

esperando na sua fila enquanto outro está desocupado.

n  Rebalanciamento de filas sazonal.

73

Page 74: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Algoritmo Básico

n  Ache a fila de prioridade mais alta com um processo e pegue o primeiro da fila.

n  Calcular o quantum n  Rodar n  Se ele estourar o quantum, ponha-o

em uma lista de expirados. (talvez)

74

Page 75: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Filas

n  140 filas, uma pra cada prioridade. ¡  Valor pode ser modificado facilmente.

n  Dois conjuntos de filas. ¡  Ativa e expirada.

n  0-99: Tempo real n  100-139: Outros processos, valor

modificável via nice()

75

Page 76: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Quantum

n  Prioridade maior = quantum maior ¡  Processos importantes devem rodar por

mais tempo

76

Page 77: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Ativo e Expirado

n  Sistema roda processos das filas ativas, e os coloca em expirado quando o quantum acaba. ¡  Salvo algumas excessões.

n  Quando a fila ativa acaba, o escalonador inverte as filas ativas com as filas expiradas. ¡  Forma de evitar custos com aging

77

Page 78: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Eficiência

n  Processos só são analisados pelo escalonador quando começam ou terminam de rodar. ¡  É aí que se recalcula prioridades e

quantum. n  Não existe repetição sobre todos os

processos nunca.

78

Page 79: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Escalonamento de tempo real

n  Dois sistemas de escalonamento de tempo real (0-99) ¡  Tempo real sempre tem prioridade sobre

outros processos. ¡  FIFO com preempção apenas por

processo de prioridade maior. ¡  Round Robin com quantum entre 10 e

200ms

79

Page 80: Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem

Linux

80