Sie sind auf Seite 1von 46

Sistemas Operativos I

Escalonamento
Luis Lino Ferreira / Maria Joo Viamonte
Fevereiro de 2006

Sumrio
Conceitos bsicos Critrios de escalonamento Algoritmos de escalonamento Escalonamento multi-processador Escalonamento em tempo real

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

Conceitos Bsicos
Objectivos do escalonamento
Optimizar a performance do sistema de acordo com um critrio
Dividir a capacidade de processamento da UCP entre vrios processos Diminuir o tempo de resposta (sistemas de Tempo-Real)

Como?
Alguns exemplos:
Quando um processo est espera (por ex: de uma operao de I/O ou de um sinal), outro processo pode entrar em funcionamento Periodicamente retirado um processo e substitudo pelo prximo na fila de ready
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
3

Caracterizao de um programa
Ciclo de um programa
Execuo na UCP (CPU Burst) seguido de espera at finalizao de um operao de I/O (I/O Burst)

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

Notao Grfica Utilizada


Chegada de um processo ao sistema Processo em execuo (estado de running) Processo espera (estado de waiting) Finalizao de um processo Exemplo:
P2

P2 0 3 6 9 11 15 t

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

Histograma dos CPU Bursts


A durao dos CPU Burst tm tendncia a ter uma curva de frequncia exponencial, com muitos CPU Burst de curta durao e poucos CPU Burst de longa durao Um programa I/O-bound tem muitos CPU Burst de curta durao Um programa CPU-bound tem poucos CPU Burst, mas estes so de longa durao

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

Escalonador da UCP
O escalonador selecciona entre os processos na fila de Ready, aqueles que devem entrar em execuo de seguida A deciso de escalonamento pode ser feita nas seguintes circunstncias:
1.

2.

3.

4.

O processo comuta do estado Running para o estado Waiting (pedido de I/O, evocao da funo wait()) O processo comuta do estado Running para o estado Ready (ocorrncia de uma interrupo) O processo comuta do estado Waiting para o estado Ready (termina um pedido de I/O) O processo termina

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

Diagrama de Estados
Interrupo

Exit

Terminated Terminated

Ready Ready

Running Running

I/O fim ou chegada evento

Escalonador

I/O ou espera evento

Waiting Waiting

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

Tipos de Escalonamento
Escalonamento no preemptivo:
o escalonador apenas pode efectuar a comutao entre processos quando o processo termina ou passa para o estado de Waiting Casos 1 e 4* Exemplo: Windows 3.1 e Apple Macintosh OS
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
9

Tipos de Escalonamento
Escalonamento preemptivo:
o escalonador pode interromper a execuo de um processo antes que este tenha terminado Casos 2 e 3*
* do slide anterior

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

10

Escalonamento preemptivo
Alguns problemas
2 Processos partilham dados Um dos processo est a actualizar os dados, a UCP decide efectuar a comutao para outro processo O segundo processo vai ter acesso a dados potencialmente inconsistentes

Mecanismos para proteco no acesso a dados partilhados (Captulos seguintes)

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

11

Dispatcher
Outro componente envolvido na funo de escalonamento o Dispatcher :
o mdulo que atribui a UCP ao processo seleccionado pelo escalonador de curto-prazo

Dispatcher executa as seguintes operaes:


comutao de contexto comutao para o modo de utilizador salto para o endereo adequado de memria do programa por forma a continuar ou iniciar a sua execuo

O tempo de execuo do Dispatcher dever ser minimizado


05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
12

Estrutura de um Escalonador
Selecciona processo

Escalonador

Dispatcher

UCP

Coloca processo em funcionamento

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

13

Tipos de Escalonamento
New New
Escalonamento a longo prazo

Suspended Suspended Ready Ready

Terminated Terminated Ready Ready Running Running

Suspended Suspended Blocked Blocked


Escalonamento a mdio prazo
05/06

Waiting Waiting
Escalonamento a curto prazo
Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
14

Critrios de Escalonamento
Critrios orientados ao utilizador (performance)
Turnaround time Tempo que decorre entre o instante em que um processo submetido e o instante em que concludo a soma do tempo de espera para ir para a memria, tempo de espera na fila dos ready, tempo em execuo na UCP e o tempo de espera por recursos Tempo de resposta Tempo que decorre entre a submisso de um pedido e o incio da resposta este critrio adequado para sistemas interactivos Objectivos: baixo tempo de resposta maximizando o nmero de utilizadores com tempos de resposta aceitveis
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
15

Critrios de Escalonamento
Critrios orientados ao utilizador (performance)
Deadline Deadline, ponto no tempo no qual um determinado resultado de computao deve estar disponvel Sempre que forem especificadas deadlines, o critrio de escalonamento deve garantir que as deadlines so cumpridas, caso no seja possvel deve garantir que o mnimo nmero de deadlines ultrapassado

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

16

Critrios de Escalonamento
Critrios orientados ao utilizador (outros)
Predictabilidade um determinado processo, independentemente da carga do processador deve correr aproximadamente no mesmo tempo Exemplos: um jogo de computador do tipo Arcade deve correr mesma velocidade independentemente da mquina em que est funcionar e da respectiva carga um programa de descodificao de vdeo deve ser capaz de processar 30 frames por segundo independentemente da mquina e respectiva carga
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
17

Critrios de Escalonamento
Critrios orientados ao sistema (performance)
Utilizao da UCP Utilizao: razo entre o tempo durante o qual a UCP utilizada e o tempo total de execuo O objectivo maximizar a utilizao da UCP Dbito (Throughput) Nmero de processo executados por unidade de tempo Maximizar o nmero de processos concludos por unidade de tempo O valor ptimo depende dos processos
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
18

Critrios de Escalonamento
Critrios orientados ao sistema (outros)
Fairness Na ausncia de qualquer critrio por parte do utilizador os processo devem ser tratados de forma idntica pela UCP Prioridades Cada processo associado a uma determinada prioridade que lhe garante um tratamento diferenciado por parte da UCP em relao aos outros processo do sistema, podendo ser beneficiado ou prejudicado

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

19

Critrios de Escalonamento
Critrios orientados ao sistema (outros)
Balanceamento de recursos Utilizado em conjunto com polticas de escalonamento de mdio e longo prazo, permite escalonar preferencialmente processos que sub-utilizem determinados recursos, que se encontrem sobrecarregados Tempo de espera a soma dos perodos dispendidos pelo processo no estado de Ready

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

20

10

Algoritmos de Escalonamento
Fisrt-Came, Fisrt-Served (FCFS) Shortest-Job-First (SJF) Escalonamento por Prioridades Round-Robin (RR) Multi-nvel por Filas Multi-nvel com realimentao por filas
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
21

First-Come, First-Served (FCFS)


O processo que chega fila de ready em primeiro lugar tambm o primeiro processo a ser executado Simples e fcil de implementar No preemptivo um processo apenas liberta a UCP quando termina ou quando requer uma operao de I/O Problemas Efeito de comboio, resultando em baixa utilizao da UCP Favorece processos CPU Bound, dado que os processo I/O Bound tm que esperar pelo fim dos processos CPU Bound
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
22

11

First-Come, First-Served (FCFS)


Exemplo: Processo P1 P2 P3

Burst Time 24 3 3

Ordem de chegada: {P1, P2, P3}

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

23

First-Come, First-Served (FCFS)


P1, P2, P3

P1 0 24

P2 27

P3 30

Tempo de espera: P1=0, P2=24, P3=27 Tempo mdio de espera: (0+24+27)/3 =17

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

24

12

First-Come, First-Served (FCFS)


Ordem de chegada: {P2, P3, P1}
P2, P3, P1

P2 0 3

P3 6

P1 30

Tempo de espera: P2=0, P3 = 3, P1=6 Tempo mdio de espera: (0+3+6)/3=3 O Efeito de Comboio deve-se aos processo mais curtos terem que esperar por processos de maior durao

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

25

First-Come, First-Served (FCFS)


Exemplo com processos I/O Bound e CPU Bound
Perfil de execuo P1 (I/O Bound)
P1

P1 0 3 6 9 15 t

P2

Perfil de execuo de P2 (CPU Bound)


P2 0 6
Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

15

t
26

05/06

13

First-Come, First-Served (FCFS)


Resultado
Ordem de chegada {P1, P2}
P2,P1

P1 0 3

P2 6 9

P1 11

P2 19

P1 21

P1 t 27

Os processo CPU Bound tem tendncia para serem executados primeiro

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

27

First-Come, First-Served (FCFS)


Favorecimento de processos CPU-bound Os processos I/O bound libertam a UCP sempre que requerem uma operao de I/O Passam para a fila de waiting Quando terminam a operao de I/O, voltam a entrar na fila de ready na ltima posio Esperam at que os processo sua frente terminem ou libertem a UCP

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

28

14

Shortest-Job-First (SJF)
O escalonador selecciona o processo na fila de ready que tiver menor tempo de execuo No preemptivo: se chegar fila de ready um processo com um tempo de execuo menor que o processo em execuo, este no comutado Preemptivo: o processo em execuo comutado pelo processo novo se o tempo restante de execuo for maior que o tempo de execuo do processo novo (Shortest-Remaining-Time-First (SRTF))
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
29

Shortest-Job-First (SJF)
SJF - No Preemptivo
Processo P1 P2 P3 P4 P1 P2 P1 0
05/06

Chegada 0.0 2.0 4.0 5.0 P3 P4 P3 7 8

Burst 7 4 1 4

P2 12

P4 16
30

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

15

Shortest-Job-First (SJF)
SJF - Preemptivo
Processo P1 P2 P3 P4 P1 P1 0 2 P2 P2 4 Chegada 0.0 2.0 4.0 5.0 P3 P3 5 P4 P2 7 P4 11 P1 16 Burst 7 4 1 4

Chegada de um processo
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
31

Shortest-Job-First (SJF)
Caractersticas
considerado como um algoritmo ptimo* para minimizao do tempo mdio de espera Usado essencialmente para escalonamento a longo prazo

Problemas
necessrio conhecer e avaliar o tempo de execuo do processo No possvel saber apenas possvel estimar Pode-se utilizar como tempo de execuo o tempo limite especificado pelo utilizador Em casos de carga elevada os processos mais longos so prejudicados (i.e. so os ltimos a ser executados) Pouco adequado ao escalonamento de curto prazo devido dificuldade de prever a durao do prximo CPU Burst * No foi ainda provado
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
32

16

Shortest-Job-First (SJF)
SJF no escalonamento a curto prazo
Pode ser utilizada uma estimativa da durao do prximo CPU Burst (n+1) com base nos anteriores A durao do prximo CPU Burst uma mdia exponencial da durao dos anteriores CPU Burst n+1=.tn + (1- ).tn - mdia exponencial para um valor de

: controla o peso relativo da historia passada e recente, 01


tn: durao do ltimo CPU Burst n+1: valor previsto para o prximo CPU Burst

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

33

Shortest-Job-First (SJF)

= 0.5 t0=10

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

34

17

Escalonamento por Prioridades


Cada processo tem uma prioridade associada A UCP alocada ao processo com maior prioridade Processos de igual prioridade podem ser escalonados atravs de FCFS Pode ser preemptivo ou no preemptivo A prioridade representada por um nmero inteiro positivo (nesta disciplina adoptou-se que 0 representa a maior prioridade)

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

35

Escalonamento por Prioridades


Escalonamento no preemptivo
Processo Burst Prioridade P1 3 3 P2 2 1 P3 2 4 P4 2 5 P5 5 2 Chegada simultnea no tempo 0
P1,P2, P3, P4, P5

P2 0 3

P5 7

P1 10

P3

P4 14
36

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

18

Escalonamento por Prioridades


Escalonamento preemptivo
Processo P1 P2 P3 P4 P5 Burst 3 2 2 2 5 Prioridade 3 1 4 5 2 Tempo de chegada 0 2 2 5 7

P1 P1 0
05/06

P2,P3 P2 2

P4
P1

P5 P3 7 P5 12 P4 14
37

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

Escalonamento por Prioridades


Caractersticas
Em situaes de sobrecarga os processos de menor prioridade podem nunca ser executados
Uma das solues para este problema aumentar a prioridade do processo com o tempo

As prioridades podem ser definidas:


em funo das propriedades do processo
Durao dos CPU Bursts, deadlines, importncia do processo, etc

politicamente
Em funo do pagamento do utilizador, o departamento a quem pertence o processo, etc
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
38

19

Round-Robin (RR)
Especialmente adaptado para Sistemas Partilhados Multiutilizador
Algoritmo: Cada processo obtm uma pequena unidade de tempo da UCP, time quantum ou time slice, vulgarmente 10 -100ms No fim de cada time quantum (q) o processo comutado e adicionado cauda da fila ready Caso o processo termine a sua execuo ou passe para o estado de waiting durante time quantum atribudo, o escalonador selecciona o processo seguinte para execuo O escalonador necessita de um timer de modo a que seja periodicamente interrompido aps cada time quantum
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
39

Round-Robin (RR)
Processo Burst 53 P1 17 P2 P3 68 24 P4 time quantum = 20
P1,P2, P3, P4

P1 termina sua execuo

P1 0 20

P2 37

P3 57

P4 77

P1

P3 P4 P1

P3 P3

97 117 121 134 154 162


P3 termina sua execuo
40

P2 termina sua execuo

P4 termina sua execuo

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

20

Round-Robin (RR)
Caractersticas
Melhor tempo de resposta do que SJF O escalonamento em RR pode ser visto como dividir a capacidade de processamento da UCP pelo vrios processos

Problemas
Se o time quantum for pequeno o overhead do algoritmo pode ser grande (FCFS) Favorece processo CPU bound Os processos I/O bound usam a UCP durante um tempo inferior ao time quantum e aps o que passam para a fila de waiting Os processo CPU bound usam o seu time quantum na totalidade e voltam para a fila de ready

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

41

Round-Robin (RR)

Turnaround time tempo que decorre entre o instante em que um processo submetido e o instante em que concludo Turnaround time tambm est dependente do valor do time quantum
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

42

21

Round-Robin (RR)
Algumas questes:
E se quisermos dar maior importncia a um processo?
Que alteraes devem ser feitas ao algoritmo RR?

Se reduzirmos o time quantum para um valor muito pequeno.


Que problemas ocorrem?
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
43

Multi-nvel por Filas


Este tipo de escalonamento usado quando fcil classificar os processos em classes distintas, por ex.:
Processos interactivos Processos batch Aplicaes multimdia

A fila ready dividida em vrias filas, uma por cada classe de processos
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
44

22

Multi-nvel por Filas


Cada fila pode ter o seu prprio algoritmo de escalonamento, por ex.:
Processos interactivos: RR Processos batch: FCFS Processo do sistema: prioridades

Cada fila tem prioridade absoluta sobre a outra


i.e. um processo da fila de batch apenas corre quando no existirem processos na fila dos processos interactivos
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
45

Multi-nvel por Filas

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

46

23

Multi-nvel por Filas


Tambm necessrio efectuar o escalonamento entre as filas:
Prioridades fixas
Em casos de carga elevada os processos atribudos s filas de menor prioridade so preteridos

Round-Robin
cada fila obtm uma certa quantidade de tempo da UCP que pode ser escalonado pelos seus processos
80% para processos foreground em RR 20% para processos background em FCFS
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

47

Multi-nvel por Filas


Exemplo: 2 processos do sistema: P1 e P2
2 processos interactivos: P3 e P4 1 processo batch: P5

Perfis de execuo

P1 0 P4 0 3 4 t 0 3 5 t 0 P5

P2 2 t 0

P3 3 4 t

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

48

24

Multi-nvel por Filas


Exemplo (cont.)
Algoritmos de escalonamento
Processos interactivos: RR com time quantum igual a 2 Processos batch: FCFS Processos do sistema: prioridades (P1 = 2, P2 = 0)

Chegadas dos processos


P1 0 P2 4 P3 0 P4 0 P5 1
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
49

Multi-nvel por Filas


Exemplo (resultado)
P5 P1,P3, P4 P2

P1 0

P3

P2 5

P1

P4 P3 P4 10

P5 15 17 t

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

50

25

Multi-nvel com Realimentao por Filas


Permite que um processo se mova entre filas A passagem para um fila de prioridade inferior feita quando o processo utiliza mais tempo da UCP do que aquele que lhe estava destinado, por exemplo se o processo exceder o respectivo time quantum Igualmente um processo que espere demasiado tempo numa fila de prioridade inferior pode ser passado para um fila de prioridade superior

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

51

Multi-nvel com Realimentao por Filas

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

52

26

Multi-nvel com Realimentao por Filas


Trs filas:
Q0 RR com time quantum de 8 ms Q1 RR com time quantum de 16 ms Q2 FCFS

Escalonamento
Um novo processo entra na fila Q0, a qual segue uma poltica RR. Quando ganha a UCP, o processo recebe 8 ms; se no terminar em 8 ms, o processo passado para a fila Q1 Em Q1, o processo servido novamente por uma poltica de escalonamento RR e recebe 16 ms adicionais; se mesmo assim no termina, o processo passado para a fila Q2 com uma poltica FCFS
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
53

Multi-nvel com Realimentao por Filas


Exemplo:
Perfis de execuo

P1 0 3 4 t 0

P2 3 t 0

P3 3 4 t

P4 0
05/06

P5 3 4 t 0 3 5 t

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

54

27

Multi-nvel com Realimentao por Filas Exemplo (cont.)


Algoritmos de escalonamento
Q0 RR com time quantum igual a 2 Q1 RR com time quantum igual a 3 Q2 FCFS

Chegadas dos processos


P1 0 P2 0 P3 0 P4 0 P5 0
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
55

Multi-nvel com Realimentao por Filas

Exemplo (resultado)
P2 passa para a fila Q1 P1-5 P5 passa para a fila Q1 P5 corre at ao fim dado que as outras filas esto vazias

P1 0

P2

P3

P4 5

P5

P1

P3 10

P4

P2

P5 15 t

Dado que a fila Q0 est vazia o escalonador passa a escalonar processos da fila Q1

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

56

28

Multi-nvel com Realimentao por Filas


Exemplo2
RR com time quantum (q) varivel por fila, igual a 2(i-1)
Processo P1 P2 P3 P4 P5 Tempo de chegada 0 2 4 6 8 Burst time 3 6 4 5 2

Permite que o turnaround time de processos mais longos seja menor


05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
57

Multi-nvel com Realimentao por Filas

Exemplo2 (resultado)

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

58

29

Multi-nvel com Realimentao por Filas Caracterizado por:


Nmero de filas Algoritmos de escalonamento de cada fila Mtodo utilizado para passar um processo para uma fila de mais alta ou mais baixa importncia Mtodo utilizado para decidir em que fila o processo colocado, aps a sua entrada no sistema

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

59

Escalonamento Multiprocessador
O problema do escalonamento torna-se ainda mais complexo para sistemas multi-processador Tipos de sistemas
Processadores homogneos: todos os processadores so idnticos em termos de funcionalidades Processadores no homogneos: alguns dos processadores tem caractersticas diferentes. Por ex.: acesso a certo dispositivos de I/O, arquitectura do processador diferente, performance

Objectivos do escalonamento
Partilhar a carga entre processadores
05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

60

30

Escalonamento Multiprocessador
Multi-processamento assimtrico
S um processador acede s estruturas de dados do sistema, aliviando a necessidade de partilha de dados usada uma nica fila Ready, e no uma fila por processador, para evitar que haja algum processador inactivo enquanto outros tm processos nas suas filas Ready espera

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

61

Escalonamento Tempo-Real
Tipos de aplicaes
Industriais Avionics Automveis Multimdia

Tipos de sistemas tempo real


Sistemas crticos (Hard Real-Time) Sistemas no crticos (Soft Real-Time)
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
62

31

Escalonamento Tempo-Real
Sistemas crticos (Hard Real-Time)
necessrio garantir que a(s) tarefa(s) consideradas crticas terminem antes de um determinado tempo (deadline), caso contrrio o seu no cumprimento pode resultar em graves danos para o sistema Exemplos:
Aplicaes aeroespaciais ABS de um carro Sistema de automao
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
63

Escalonamento Tempo-Real
Sistemas no crticos (Soft Real-Time)
O funcionamento do sistema apenas ligeiramente afectado caso no seja possvel cumprir um determinada deadline. Exemplos:
Aplicaes multimdia Jogos de computador

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

64

32

Escalonamento Tempo-Real
Os mtodos de escalonamento devem garantir priori que o sistema cumpre as suas metas temporais normalmente necessrio conhecer o tempo de execuo das tarefas
Peridicas (por ex. para aquisio de dados) Espordicas (por ex. para o tratamento de alarmes)

O sistema muito pouco dinmico


Escalonamento por prioridades Escalonamento utilizando o algoritmo Earliest Deadline First (EDF)
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
65

Exemplos de Escalonadores

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

66

33

Exemplos de Escalonadores
Solaris Windows 2000 Linux

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

67

Solaris

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

68

34

Solaris 2
Usa um processo de escalonamento baseado nas prioridades Define 4 classes de escalonamento:
Real-Time System Time sharing Interactive

Cada classe tem diferentes prioridades e diferentes algoritmos de escalonamento (as duas ltimas que usam o mesmo) Por defeito um processo criado atribudo classe de Time Sharing
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
69

Solaris 2

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

70

35

Solaris 2
Real-Time Maior prioridade, prioridade (100-159)* Tempo de resposta garantido Estes processos correm antes que qualquer outro processo de outra classe (normalmente existem poucos) System Processos relacionados com o kernel
Processos de utilizadores a correr em Kernel mode no so adicionados a esta classe

Prioridade fixa (60-99) Cada processo corre at bloquear ou ser preemptado por outro processo mais prioritrio
* Para o SO Solaris a maior prioridade 159

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

71

Solaris 2
Time Sharing Prioridade (0-59) Escalonamento multi-nvel com realimentao por filas Prioridades dinmicas Time quantums diferentes para cada nvel de prioridade (maior prioridade, menor time quantum) Movimentao dos processo entre filas de prioridades diferentes Interactive Processo interactivos so escalonados na classe Time Sharing, mas tipicamente lhes atribuda maior prioridade e permanecem nessas filas

Bons tempos de resposta para processos interactivos Bom dbito (throughput, nmero de processo executados por unidade de tempo) para processos CPU-bound que ficam com baixa prioridade mas com um Time quantum maior
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
72

36

Solaris 2
O escalonador converte a prioridade do processo para as prioridade global e escolhe sempre para entrar em execuo o processo com maior prioridade Processos com a mesma prioridade so escolhidos por um algoritmo de RR O processo corre na UCP at que: fique bloqueado utilize o time quantum que lhe estava atribudo (se no for um processo da classe system, ou seja se for um processo da classe Interactive ou Time-sharing) ou preemptado por um processo de maior prioridade

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

73

Solaris 2
Escalonamento de processos Time Sharing ou Interactive
Inicialmente aos processo lhes atribuda a prioridade 29 Caso o processo no utilize todo os seu time slice:
a sua prioridade aumentada (at 59)
O time slice diminuindo Favorece processos I/O-bound

Caso o processo utilize todo os seu time slice:


a sua prioridade diminuda
o time slice aumenta Favorece processos CPU-bound
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
74

37

Windows

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

75

Windows
Algoritmo de escalonamento preemptivo por prioridades So definidos 32 nveis de prioridade divididos por 6 classes:
REALTIME_PRIORITY_CLASS (24) HIGH_PRIORITY_CLASS (13) ABOVE_NORMAL_PRIORITY_CLASS (10) NORMAL_PRIORITY_CLASS (8) BELOW_NORMAL_PRIORITY_CLASS (6) IDLE_PRIORITY_CLASS (4)

Os processos com prioridades de 1 a 15 podem ver a sua prioridade alterada dinamicamente Os processos com prioridades de 16 a 32 tm prioridade fixa

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

76

38

Windows 2000
O escalonador gere uma fila para cada nvel de prioridade e escolhe para entrar em execuo o processo com prioridade mais alta (da fila) Um processo corre at:
Um outro processo de prioridade mais alta entrar para a fila de ready Um processo terminar Um processo terminar o seu time quantum Um processo entrar no estado waiting

Para as classes de prioridade varivel o escalonador modifica as prioridades quando:


O Time-quantum do processo expira, sendo a prioridade diminuda de 1 Um processo passa de background para foreground (s para a classe NORMAL_PRIORITY_CLASS) Uma janela recebe um evento, por ex. um timer ou recebe mensagens do rato O processo passa do estado de waiting para ready, a prioridade aumentada
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
77

Windows 2000
Para conseguir nveis de desempenho adequados em programas interactivos, o sistema usa uma regra de escalonamento especial nos processos da classe NORMAL_PRIORITY_CLASS: Distingue entre nos processos em foreground (quando a janela correspondente est seleccionada) e nos processos em background (quando a janela correspondente no est seleccionada) Quando um processo passa para foreground, aumenta-se a sua prioridade de modo a que esta seja maior ou igual que a prioridade do processo de mais alta prioridade em background Quando do processo passa para backgroud, diminui-se a sua prioridade para a sua prioridade original Processos de tempo-real tm acesso preferencial UCP; mas o SO no garante que um processo de tempo real comece a ser executado dentro de um limite temporal pr-definido (o Windows 2000 do tipo soft realtime)
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
78

39

Windows 2000
A estratgia de prioridades tem alguns aspectos a realar
Tende a dar ptimos tempos de resposta para processos interactivos que usem o rato e janelas Permite que processos I/O-bound mantenham os dispositivos em funcionamento (sem pausas) Os processos CPU-bound ficam com as sobras da UCP
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
79

Linux

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

80

40

Linux
Em Linux, o escalonamento tambm inclui a execuo das tarefas do kernel Estas tarefas do kernel incluem as tarefas requisitadas por processos em execuo e as tarefas internas ligadas aos device drivers A execuo em modo kernel pode ocorrer de 3 formas:
Um programa em execuo requisita explicitamente um servio do SO atravs de uma chamada ao sistema Implicitamente quando a gesto de memria virtual gera uma falha de pgina Um device driver gera uma interrupo que leva a UCP a iniciar uma rotina do kernel para atendimento da interrupo
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
81

Linux
O Linux usa duas tcnicas para proteger a execuo de processos: O cdigo normal do kernel no pode ser interrompido Quando uma interrupo surge durante a execuo em modo kernel, uma flag activada de modo a que o escalonador possa correr logo que a funo de sistema termine e o controlo volte para o modo de utilizador Para seces crticas de cdigo pertencentes a rotinas de servio usa-se outra tcnica Desactivando as interrupes por hardware durante as seces crticas, o kernel garante que pode prosseguir sem o risco de acesso simultneo a dados partilhados do SO (e sem possibilidade de se adulterar o sistema)
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
82

41

Linux
O Linux usa 3 mtodos de escalonamento de processos:
Um algoritmo de tempo partilhado para escalonamento de processos convencionais Dois algoritmos de tempo-real para processos em que a previsibilidade dos parmetros temporais (por ex. perodo e deadline) do processo so importantes para a sua execuo correcta
Por ex. uma tarefa responsvel por descodificar um filme deve mostrar um fotograma 30 vezes por segundo
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
83

Linux
a classe de escalonamento de cada processo que determina qual o algoritmo a usar:
SCHED_FIFO: First-in-first-out tempo real SCHED_RR: Round-Robin tempo real SCHED_OTHER: Escalonamento hierarquico com realimentao

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

84

42

Linux
O escalonador escolhe para entrar em execuo o processo com maior prioridade (0-139) presente na fila de ready
0-99 prioridades estticas para os processo de tempo-real 100-139 prioridades dinmicas para processos convencionais

Notas:
As prioridades estticas so sempre superiores s dinmicas Os processos de tempo-real tem sempre prioridade relativamente aos processo convencionais

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

85

Linux
Para processo convencionais
O tempo da UCP dividido em epochs (pocas) No incio de cada epoch o escalonador calcula os time quantums de cada processo Um processo substitudo por outro quando:
utiliza o seu time quantum passa para o estado de waiting lanado um processo mais prioritrio

O epoch termina quando todos os processo na fila de ready, tiverem esgotado o seu time quantum
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
86

43

Linux
Para processos convencionais, o Linux usa um algoritmo para calcular o time quantum baseado em crditos e prioridades
A regra de creditao
credits := credits + priority 2

Os crditos so transformados em tempo a regra leva em conta a histria do processo e a sua prioridade Este sistema de creditao automaticamente d mais prioridade a processos interactivos ou I/O-bound em detrimento de processos CPU-bound
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
87

Linux
O Linux implementa as classes de escalonamento de tempo-real FIFO (ou FCFS) e Round-Robin; em ambos os casos, cada processo tem uma prioridade e uma classe de escalonamento prprios
O escalonador executa o processo com a prioridade mais alta; em caso de empate, executa o processo que tem mais tempo de espera Os processos FCFS executam at terminar ou bloquear Os processos Round-Robin so interrompidos ao fim do seu time quantum e colocados no fim da fila de ready, por forma a garantir equidade no tratamento (entre eles)

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

88

44

Sistemas Operativos I
Escalonamento
Luis Lino Ferreira / Maria Joo Viamonte
Fevereiro de 2006

Escalonador da UCP
O escalonador selecciona entre os processos na fila de Ready, aqueles que devem entrar em execuo de seguida A deciso de escalonamento pode ser feita de acordo com as transies de estado de um processo: 1. Comuta do estado Running para o estado Waiting 2. Comuta do estado Running para o estado Ready 3. Comuta do estado Waiting para o estado Ready 4. Termina 5. Quando um processo entra pela 1 vez para a fila de Ready
05/06 Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte
90

45

Windows 2000
Threads so a unidade de execuo manipulada pelo escalonador do kernel Uma Thread pode estar num de 6 estados:
Ready Standby Running Waiting Transition Terminated

05/06

Sistemas Operativos I Luis Lino Ferreira / Maria Joo Viamonte

91

46

Das könnte Ihnen auch gefallen