Escolar Documentos
Profissional Documentos
Cultura Documentos
Escalonamento
Luis Lino Ferreira
Maio de 2010 V1.4
Sumrio
Conceitos bsicos Gesto das filas de escalonamento Critrios de escalonamento Algoritmos de escalonamento Escalonamento multi-processador Escalonamento com recursos partilhados Escalonamento em tempo real
Sistemas de Computadores Luis Lino Ferreira
2
A partilha do processador requer um mecanismo de comutao de processos, a que se d o nome de comutao de contexto Mecanismo:
Salvaguarda do estado do processo que perde a CPU; Restaurao do estado do processo que ganha a CPU
Sistemas de Computadores Luis Lino Ferreira
3
Escalonamento
Um dos objectivos da multi-programao a maximizao da utilizao da CPU O escalonador tem como objectivo decidir qual o prximo processo a ser executado em funo dos seus parmetros
Note-se que em sistemas mono-processador apenas pode ser executado um processo de cada vez
Conceitos Bsicos
Objectivos do escalonamento
Dividir a capacidade de processamento da CPU entre vrios processos Diminuir o tempo de resposta (sistemas de Tempo-Real)
Como?
Alguns exemplos:
Quando um processo est no estado de Waiting (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
Sistemas de Computadores Luis Lino Ferreira
6
Caracterizao de um programa
Ciclo de um programa
Execuo na CPU (CPU Burst) seguido de espera at finalizao de um operao de I/O (I/O Burst)
P2 0 3 6 9 11 15 t
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
Escalonador da CPU
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
10
Diagrama de Estados
Interrupo
Exit
Terminated
Ready
Running
Escalonador
1 3
Waiting
11
Filas de Escalonamento
Existem filas para cada um dos estados, assim como filas para coordenar o acesso aos dispositivos de I/O
12
Filas de Escalonamento
Ready queue esta fila contm os PCBs dos processos residentes em memria que esto no estado ready, isto processos que esto prontos e espera de serem executados Device queue lista dos PCBs dos processos espera dum dispositivo I/O
13
Filas de Escalonamento
Processo emite um pedido de I/O
Filas de Escalonamento
o processo pode emitir um pedido I/O, e consequentemente ser colocado numa fila de um I/O device O tempo que o escalonador tinha atribudo ao processo (time slice) termina e consequentemente ser colocado na fila de ready o processo pode criar um novo processo, ficando espera que ele termine e consequentemente ser colocado na fila de waiting o processo pode ser removido da CPU em consequncia duma interrupo, transitando para a Ready queue
Sistemas de Computadores Luis Lino Ferreira
15
Escalonadores
Um processo migra entre vrias filas de escalonamento durante o seu tempo de vida O SO deve seleccionar processos destas filas com base em algum mtodo ou algoritmo H trs tipos de escalonadores:
curto prazo mdio prazo longo prazo I/O-bound process despende mais tempo a fazer operaes I/O do que clculos na CPU; consequentemente, h bastantes CPU bursts de curta durao CPU-bound process despende mais tempo a fazer clculos na CPU; consequentemente, h poucos CPU bursts de longa durao
Sistemas de Computadores Luis Lino Ferreira
16
Escalonadores
Selecciona que processos devem ser executados de seguida e reserva, consequentemente, a CPU Escalonador de curto-prazo invocado com bastante frequncia (milli-segundos) (ser rpido) Exemplos:
Linux Windows
Sistemas de Computadores Luis Lino Ferreira
17
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 do slide 11 Exemplo: Windows 3.1 e Apple Macintosh OS
Sistemas de Computadores Luis Lino Ferreira
18
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 11
19
Dispatcher
o mdulo que atribui a CPU ao processo seleccionado pelo escalonador de curto-prazo 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
10
Estrutura de um Escalonador
Selecciona processo
Escalonador
Dispatcher
CPU
21
Tipos de Escalonamento
New
Escalonamento a longo prazo
Suspended Blocked
Escalonamento a mdio prazo
Waiting
Escalonamento a curto prazo
Sistemas de Computadores Luis Lino Ferreira
22
11
Algoritmos de Escalonamento
First-Came, First-Served (FCFS) Shortest-Job-First (SJF) Escalonamento por Prioridades Round-Robin (RR) Multi-nvel por Filas Multi-nvel com realimentao por filas
Sistemas de Computadores Luis Lino Ferreira
23
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 CPU quando termina ou quando requer uma operao de I/O Problemas Efeito de comboio, podendo resultar em grandes tempos de espera Favorece processos CPU Bound, dado que os processo I/O Bound tm que esperar pelo fim dos processos CPU Bound
Sistemas de Computadores Luis Lino Ferreira
24
12
Exemplo: Processo P1 P2 P3
Burst Time 24 3 3
25
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
26
13
P2 0
P3 3 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
27
P1 0
15
P2
15
t
28
14
P2,P1
Resultado
P1 0 3
29
Os processos I/O bound libertam a CPU 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 CPU
30
15
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))
Sistemas de Computadores Luis Lino Ferreira
31
Shortest-Job-First (SJF)
SJF - No Preemptivo
Chegada 0.0 2.0 4.0 5.0 P2 P1 0 3 7 P3 P4 P3 8 P2 12 P4 16
32
Processo P1 P2 P3 P4 P1
Burst 7 4 1 4
16
Shortest-Job-First (SJF)
SJF - Preemptivo
Chegada 0.0 2.0 4.0 5.0 P2 P1 0 2 P2 4 P3 P3 5 P4 P2 7 P4 11 P1 16 Burst 7 4 1 4
Processo P1 P2 P3 P4 P1
Chegada de um processo
Sistemas de Computadores Luis Lino Ferreira
33
Shortest-Job-First (SJF)
Caractersticas
considerado como um algoritmo ptimo* para minimizao do tempo mdio de espera Usado essencialmente para escalonamento a longo prazo necessrio conhecer e avaliar o tempo de execuo do processo No possvel saber o tempo de execuo com preciso, 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
Sistemas de Computadores Luis Lino Ferreira
34
Problemas
17
Shortest-Job-First (SJF)
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
35
Shortest-Job-First (SJF)
= 0.5 t0=10
36
18
Cada processo tem uma prioridade associada A CPU alocada ao processo com maior prioridade Processos de igual prioridade podem ser escalonados atravs de FCFS
37
Escalonamento no preemptivo
P2 0 3
P5 7
P1 10
P3
P4 14
38
19
P1 P1 0
P2,P3 P2 2
P4
P1
P5 P3 7
Sistemas de Computadores Luis Lino Ferreira
P5 12
P4 14
39
Caractersticas
Uma das solues para este problema aumentar a prioridade do processo com o tempo em funo das propriedades do processo
Durao dos CPU Bursts, deadlines, importncia do processo, etc Em funo do pagamento do utilizador, o departamento a quem pertence o processo, etc
Sistemas de Computadores Luis Lino Ferreira
40
politicamente
20
Round-Robin (RR)
Algoritmo:
Cada processo obtm uma pequena unidade de tempo da CPU, 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 o 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
Round-Robin (RR)
Processo Burst P1 53 P2 17 P3 68 P4 24 time quantum = 20
P1,P2, P3, P4
P1 0 20
P2 37
P3 57
P4 77
P1
P3 P4 P1
P3 P3
21
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 CPU pelo vrios processos 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 CPU 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
Problemas
43
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
Sistemas de Computadores Luis Lino Ferreira
44
22
Round-Robin (RR)
Algumas questes:
Este tipo de escalonamento usado quando fcil classificar os processos em classes distintas, por ex.:
A fila ready dividida em vrias filas, uma por cada classe de processos
Sistemas de Computadores Luis Lino Ferreira
46
23
Cada fila pode ter o seu prprio algoritmo de escalonamento, por ex.:
i.e. um processo da fila de batch apenas corre quando no existirem processos na fila dos processos interactivos
Sistemas de Computadores Luis Lino Ferreira
47
48
24
Prioridades fixas
Em casos de carga elevada os processos atribudos s filas de menor prioridade so preteridos cada fila obtm uma certa quantidade de tempo da CPU que pode ser escalonado pelos seus processos, por exemplo:
Round-Robin
Exemplo:
Perfis de execuo
P1 0 P4 0 3 4 t 0 3 5 t 0 P5 3 5 t
P2 2 t 0
P3 3 4 t
50
25
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) P1 0 P2 4 P3 0 P4 0 P5 1
Sistemas de Computadores Luis Lino Ferreira
51
Exemplo (resultado)
P3 escalonado dado que no terminou o seu q
P5 P2
P1,P3, P4
P1 0
P3 P1
P2 5
P1 P3 P4 P3 10
P4
P5 15 17 t
52
26
Permite que um processo se mova entre filas, i.e. acrescenta adaptabilidade aos escalonamento multi-nvel A passagem para um fila de prioridade inferior feita quando, por exemplo:
o processo utiliza mais tempo da CPU (time quantum) do que aquele que lhe estava destinado um processo que espere demasiado tempo numa fila de prioridade inferior pode ser passado para um fila de prioridade superior
53
54
27
Trs filas:
Q0 RR com time quantum de 8 ms Q1 RR com time quantum de 16 ms Q2 FCFS Um novo processo entra na fila Q0, a qual segue uma poltica RR. Quando ganha a CPU, 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
Sistemas de Computadores Luis Lino Ferreira
55
Escalonamento
Exemplo:
Perfis de execuo
P1 0 3 4 t 0
P2 3 t 0
P3 3 4 t
P4 0 3 4 t 0
P5 3
Sistemas de Computadores Luis Lino Ferreira
56
28
Exemplo (cont.)
Algoritmos de escalonamento
Exemplo (resultado)
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
58
29
Caracterizado por:
Nmero de filas Algoritmos de escalonamento de cada fila Mtodo utilizado para passar um processo para uma fila de mais alta ou de mais baixa prioridade Mtodo utilizado para decidir em que fila o processo colocado, aps a sua entrada no sistema
Sistemas de Computadores Luis Lino Ferreira
59
Escalonamento Multi-processador
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 certos dispositivos de I/O, arquitectura do processador diferente, performance, etc.
Objectivos do escalonamento
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 de Ready espera
61
Escalonamento Multiprocessador
Multi-processamento simtrico
Todos os processadores so indnticos Cada processador responsvel pelas suas decises de escalonamento
31
Escalonamento Multiprocessador
Multi-processamento simtrico
Nota: necessrio fazer o lock a esta lista sempre que se tentar efectuar alteraes Mais problemtico quando existem muitos CPUs
Em relao a um sistema uniprocessador pode existir maior overhead quando um processo tem que mudar de processador. Porqu?
Sistemas de Computadores Luis Lino Ferreira
63
Escalonamento Multiprocessador
Afinidade do processador
Ser que vantajoso, em termos de performance, migrar um processo para um CPU diferente sempre que uma CPU se encontrar livre?
No:
o cdigo e os dados do processo j se podem encontrar na cache da CPU, logo podemos no ter vantagens em migrar o processo O processo poder ter que cooperar com outros processo que se encontrem na mesma CPU e mais rpido faze-lo utilizando a cache da CPU em que se encontra
Consequentemente, os SO actuais permitem definir a Afinidade, de um processo a uma CPU Esta propriedade definida pelos programadores
Sistemas de Computadores Luis Lino Ferreira
64
32
Escalonamento Multiprocessador
Balanceamento de carga
Push
Uma tarefa verifica periodicamente a carga de um determinado processador e envia os processos extra para outros processadores Um processador que est com pouca carga vai executar processos que se encontrem nas filas de Ready de outro processador
Sistemas de Computadores Luis Lino Ferreira
65
Pull
Escalonamento Multiprocessador
66
33
Escalonamento Multiprocessador
Algortmos especficos
67
Escalonamento Multiprocessador
Space Sharing
Os processos so escalonados em conjunto, sendo-lhes atribudo um conjunto de processadores onde vo correr isoladamente Os processadores podem ficar no estado de idle se um processo for realizar operaes de I/O Especialmente indicada para sistemas no interactivos, p.e. sistemas de previso meteorolgica, simulaes, etc. Pode tambm ter vantagens quando os processo partilham dados entre si
Sistemas de Computadores Luis Lino Ferreira
68
34
Escalonamento Multiprocessador
69
Escalonamento Multiprocessador
Gang Scheduling
Grupos de processo relacionados so escalonados como uma unidade (gang) Todos os membros de um gang correm simultaneamente em diferentes CPUs Todos os membros de um gang iniciam e terminam o seu timeslice ao mesmo tempo
Sistemas de Computadores Luis Lino Ferreira
70
35
Escalonamento Multiprocessador
Vantagens
A comunicao entre processo mais rpida e pode ser feita durante o timeslice
71
Escalonamento Multiprocessador
72
36
Escalonamento Multiprocessador
73
Escalonamento Multiprocessador
Processo P1 P2 P3 P4 P5
P2 P4 P3
P4 P5 P5 7
Sistemas de Computadores Luis Lino Ferreira
12
14
74
37
Escalonamento Multiprocessador
Notas:
Assume-se que custo de mudar de processador muito baixo e que se pode desprezar. Existe uma fila global de processos acessvel por todos os processadores
Identifique os problemas de concorrncia que podem ocorrer no acesso a essa lista e como se podem resolver.
Sistemas de Computadores Luis Lino Ferreira
75
Escalonamento Multiprocessador
Processo Burst P1 53 P2 17 P3 68 P4 24 time quantum = 20 CPU1 P2 P3 17
P1,P2, P3, P4
Escalonamento Round-Robin
P1 P4 37 57 62 P3 40 P1
P3 90 t
CPU2 0
P1 20
P4
60 73
t
Sistemas de Computadores Luis Lino Ferreira
76
38
Recursos:
Ficheiro que no pode ser partilhado Acesso a uma zona crtica de um programa
77
Acesso a recursos
Chegada de um processo ao sistema Processo em execuo (estado de running) Processo espera (estado de waiting) Finalizao de um processo Processo a aceder a um recurso partilhado Exemplo:
P2
P2 0 3 6 9 11 15 t
78
39
Prioridade:
Tempo de chegada:
P1 = 0 P2 = 1
P1 = 2 P2 = 0
P1 0 3 P2 0 3 5 t 5 t P2 0
P1 3 5
P1
P2 t
40
Representao grfica
P1 0 P2 0 3 5 t 3 5 t
81
Exerccios
1.
2.
Considere que prioridade de P1 0 e de P2 1, o tempo de lanamento de P1 1,5 e P2 0 Assuma escalonamento em round-robin com time quantum igual a 2 e que os dois processo so lanados no tempo zero
Sistemas de Computadores Luis Lino Ferreira
82
41
Escalonamento Tempo-Real
Tipos de aplicaes
Industriais Avionics Automveis Multimdia Sistemas crticos (Hard Real-Time) Sistemas no crticos (Soft Real-Time)
Sistemas de Computadores Luis Lino Ferreira
83
Escalonamento Tempo-Real
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:
42
Escalonamento Tempo-Real
O funcionamento do sistema apenas ligeiramente afectado caso no seja possvel cumprir um determinada deadline. Exemplos:
85
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) Escalonamento por prioridades Escalonamento utilizando o algoritmo Earliest Deadline First (EDF)
Sistemas de Computadores Luis Lino Ferreira
86
43
Exemplos de Escalonadores
87
Exemplos de Escalonadores
Linux
Windows 2000
Solaris
88
44
Linux
89
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 CPU a iniciar uma rotina do kernel para atendimento da interrupo
Sistemas de Computadores Luis Lino Ferreira
90
45
Linux
Um algoritmo de tempo partilhado para o 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
Sistemas de Computadores Luis Lino Ferreira
91
Linux
SCHED_FIFO: First-in-first-out tempo real SCHED_RR: Round-Robin tempo real SCHED_OTHER: Escalonamento hierarquico com realimentao por filas
92
46
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 As prioridades estticas so sempre superiores s dinmicas Os processos de tempo-real tem sempre prioridade relativamente aos processo convencionais
Notas:
93
Linux
O tempo da CPU 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
Sistemas de Computadores Luis Lino Ferreira
94
47
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
Sistemas de Computadores Luis Lino Ferreira
95
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)
96
48
Windows
97
Windows
Algoritmo de escalonamento preemptivo por prioridades So definidos 32 nveis de prioridade divididos por 6 classes:
REALTIME_PRIORITY_CLASS (16-31) 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 31 tm prioridade fixa
98
49
Windows
99
Windows
Ready: pronta para ser executada Standby: o escalonador decidiu que esta seria a prxima thread a ser escalonada, aguarda apenas por um processador livre Running: a ser executada num processador Waiting: espera de um operao de I/O. Pode passar para running se a sua prioridade for elevada Transition: parte da informao sobre a thread foi guardada fora da memria principal, fica espera que a CPU v buscar esses dados Terminated: estado em que o SO limpa os dados da thread Initialized: usado internamente enquanto a thread criada
100
50
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
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
Sistemas de Computadores Luis Lino Ferreira
101
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 processos em foreground (quando a janela correspondente est seleccionada) e 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 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 CPU; 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)
Sistemas de Computadores Luis Lino Ferreira
102
51
Windows 2000
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 CPU
Sistemas de Computadores Luis Lino Ferreira
103
Solaris
104
52
Solaris 2
Cada classe tem diferentes prioridades e diferentes algoritmos de escalonamento Por defeito um processo criado atribudo classe de Time Sharing
Sistemas de Computadores Luis Lino Ferreira
105
Solaris 2
106
53
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
Prioridade fixa (60-99) Cada processo corre at bloquear ou ser preemptado por outro processo mais prioritrio
107
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
Sistemas de Computadores Luis Lino Ferreira
108
54
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 CPU 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
109
Solaris 2
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 a sua prioridade diminuda o time slice aumenta Favorece processos CPU-bound
Sistemas de Computadores Luis Lino Ferreira
110
55
Sistemas Operativos I
Escalonamento
Luis Lino Ferreira
Abril de 2008
Escalonamento preemptivo
Alguns problemas
2 Processos partilham dados Um dos processo est a actualizar os dados, a CPU decide efectuar a comutao para outro processo O segundo processo vai ter acesso a dados potencialmente inconsistentes
112
56