Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito...
Transcript of Escalonamento de Processos - scufam.files.wordpress.com · O escalonamento de processos é feito...
Escalonamento de Processos
Prof. Dr. André Carvalho [email protected]
Agenda
n Contextualização ¡ Classificação de tarefas
n Métricas de Escalonamento n Escalonamento de Processos n Exemplos
2
Contextualização
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
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
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
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
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
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
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
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
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
Métricas de Escalonamento
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
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
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
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
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
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
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
Escalonamento
21
Escalonamento
n O escalonador de um SO pode ser preemptivo ou não preemptivo
22
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
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
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
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
Escalonamento FCFS
27
Tarefa Ingresso Duração
t1 0 5
t2 0 2
t3 1 4
t4 3 3
Escolamento não-preemptivo
Escalonamento FCFS
n Qual o tempo médio de execução dessas tarefas?
n Qual o tempo médio de espera?
28
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
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
Escalonamento Round-Robin
31
Tempo de Quantum (tq = 2)
Escalonamento Round-Robin
32
Escalonamento Round-Robin
n Qual o tempo médio de execução dessas tarefas?
n Qual o tempo médio de espera?
33
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
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.
Escalonamento SJF
36
Escalonamento SJF
n Qual o tempo médio de execução dessas tarefas?
n Qual o tempo médio de espera?
37
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
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
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
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
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
Escalonamento por prioridades
43
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.
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.
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
Escalonamento por Prioridade
n Qual o tempo médio de execução dessas tarefas?
n Qual o tempo médio de espera?
47
Escalonamento por Prioridade
Tarefa Ingresso Duração
t1 0 5
t2 0 2
t3 1 4
t4 3 3
Prioridade 2 3 1 4
Escalonamento por Prioridade
n Qual o tempo médio de execução dessas tarefas?
n Qual o tempo médio de espera?
49
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
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.
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.
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
Definição de Prioridades (escalonamento de Prioridades)
54
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
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
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
Problemas (escalonamento de Prioridades)
n Qual o problema apresentado da figura?
58
Inanição ou starvation
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.
Problemas (escalonamento de Prioridades)
n Uso do envelhecimento
60
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
Problemas (escalonamento de Prioridades)
n Inversão de prioridades
62
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
Outros algoritmos
n Escalonadores ¡ de tempo real ¡ Multimídia ¡ Justos ¡ Multi-processador ¡ Multi-core
Estudos de Caso
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
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
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
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
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
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
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
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
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
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
Quantum
n Prioridade maior = quantum maior ¡ Processos importantes devem rodar por
mais tempo
76
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
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
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
Linux
80