Prévia do material em texto
SISTEMAS DE TEMPO REAL
AULA 6 – ESCALONAMENTO (1)
Prof.: Danilo Coimbra
(danilo.dcc.ufba@gmail.com)
(coimbra.danilo@ufba.br)
1
Sumário
! Introdução
! Classificação
! Restrições temporais
! Relações de Precedência e Exclusão
! Abordagens de Escalonamento
de Tempo Real
2
Introdução
! Sistemas de Tempo Real
! Sistemas em que a noção de tempo e de concorrência são
tratadas explicitamente
" Escalonamento tem importância fundamental
! Conceitos e técnicas de escalonamento formam a
previsibilidade do comportamento do sistema
3
Introdução
! Previsibilidade
! Capacidade de afirmar algo sobre o comportamento
futuro do sistema
! Antecipar se os processamentos serão executados dentro
dos prazos especificados
! Determinista
" Todos os deadlines são respeitados
! Probabilista
" Probabilidade dos deadlines serem respeitados (estimativas)
4
Introdução
! Previsibilidade determina implicações em todos os
níveis
! Linguagens
! Sistemas Operacionais
! Comunicação
! Arquitetura de Computador
! etc
5
Introdução
Escalonamento
! Está associado com um conjunto de tarefas do sistema
! Determina quando serão executadas cada uma dessas
tarefas
! A ordem de execução dessas tarefas
! Como serão alocados os recursos para essas tarefas
! Determina a alocação de cada uma dessas tarefas a um
processador ou nó
" Sistemas multiprocessados ou distribuídos
6
Introdução
Escalonamento: objetivo
! Sistemas convencionais
! Maximizar o rendimento (quantidade de tarefas por
unidades de tempo) e/ou
! Minimizar o tempo de espera das tarefas
! Sistemas de tempo real
! Cumprir o deadline de cada tarefa
! Garantir que cada tarefa complete sua execução em um
tempo definido
7
Introdução
Elementos de um Escalonamento
! Escalonamento
! Identifica o procedimento de ordenar tarefas na fila de
Pronto
! Escala de Execução (schedule)
! É uma ordenação ou lista que indica a ordem de ocupação
do processador por um conjunto de tarefas disponíveis
! Descreve quando cada tarefa ocupa cada recurso
! Escalonador (scheduler)
! Componente do sistema reponsável pela gerência dos
recursos, ou seja, pela gestão do precessador (em tempo
de execução)
8
Classificação
! Classificação dos algoritmos de escalonamento
(Kopetz, 2002)
9
Escalonamento de
tempo real
Hard
Static Dinâmico
Preemptivo
Não
Preemptivo
Não
Preemptivo Preemptivo
Soft
Classificação
Escalonamento Dinânico vs Estático (1/2)
! Dinâmico (on-line)
! Realiza as decisões do escalonamento em tempo de
execução
! Selecionando uma ou mais tarefas/threads “prontas”
! Escalonadores dinâmicos são flexíveis e se adaptam a um
cenário de tarefas em evolução
! Consideram apenas as requisições das tarefas atuais
! O esforço em tempo de execução envolvido em encontrar
um escalonamento pode ser substancial
" Gargalo
10
Classificação
Escalonamento Dinânico vs Estático (2/2)
! Estático
! Realiza as decisões de escalonamento em um tempo
anterior ao de execução (“tempo de compilação”)
! Necessita de conhecimento prévio completo do conjunto de
características das tarefas. Ex.:
" Tempo máximo de execução
" Variáveis de precedência
" Deadlines
" Variáveis de exclusão mútua
" etc
11
Classificação
Escalonamento Preemptivo vs Não Preemptivo
! Preemptivo
! A tarefa de execução atual pode ser preemptida
" Interrompida, se outra tarefa mais urgente requisitar o serviço
! Não preemptivo
! A tarefa de execução atual não será interrompida até que
ela decida desalocar os recursos (normalmente depois
completada)
! É adequado em um cenário onde há muitas tarefas curtas
sendo executadas
12
Classificação
Escalonamento Centralizado vc Distribuído
! Centralizado
! Todas as decisões são centralizadas em um escalonador
! Requisita informação atualizada das situações de carga de
todos os nós (sistema distribuído dinâmico)
! Ponto crítico de falha (comunicação)
" Gargalho
! Distribuído
! Possui algoritmos distribuídos cooperativos para a solução
do problema de escalonamento
13
Modelo de Tarefas
! Tarefa
! Segmento de código cuja execução é sequencial
! Alguns fatores são impostos em tarefas em STR
! Restrições temporais
! Relações de Precedência e de Exclusão
! Necessário um Modelo de Tarefas para considerar
esses fatores no problema de escalonamento
14
Modelo de Tarefas- Restrições Temporais
! Tipicamente, as tarefas de tempo real estão sujeitas a
prazos: deadlines
! Classificadas em
! Críticas x não críticas
" Consequências de uma tarefa ser concluída após seu deadline
! Periódicas x Aperíodicas
" Baseada nas regularidades das ativações
15
Modelo de Tarefas- Restrições Temporais
! Tarefas Cíticas (hard)
! Se completada depois de seu deadline pode causar falhas
catastróficas no sistema de tempo real e em seu ambiente
! Danos irreversíveis em equipamentos ou ainda, em perda
de vidas humanas
16
Modelo de Tarefas- Restrições Temporais
! Tarefas Brandas ou não Críticas (soft)
! Se completadas depois de seus deadlines, no máximo
implicam numa diminuição de desempenho do sistema
! Falhas são identificadas como benignas, onde a
consequência do desvio do comportamento normal não
representa um custo muito significativo
17
Modelo de Tarefas- Restrições Temporais
! Tarefas Periódicas
! Quando as ativações do processamento de uma tarefa
ocorrem numa sequência, uma só ativação por intervalo
regular é chamado de Período
! Essas ativações formam o conjunto de diferentes instâncias
da tarefa
! Assim, a primeira ativação de uma tarefa periódica ocorre
na origem dos tempos considerados na aplicação (em t=0)
18
Modelo de Tarefas- Restrições Temporais
! Tarefas Aperiódicas ou Tarefas Assíncronas
! Quando a ativação do processamento de uma tarefa
responde a eventos internos ou externos, sem uma
sequência regular
! Se essas ativações tem tais características, as tarefas
são ditas aperiódicas
19
Modelo de Tarefas- Restrições Temporais
! Tarefas periódicas usualmente são associadas a hard
deadlines, ou seja, são tarefas críticas
! Pela regularidade e pela previsibilidade
! Tarefas aperiódicas são associadas a tarefas
brandas, exatamente por ter deadline softs
! Por falta de previsibilidade
! Tarefas esporádicas são aperiódicas (deadline hard)
! Característica central: a restrição de um intervalo mínimo
conhecido entre duas ativações consecutivas
20
Modelo de Tarefas- Restrições Temporais
Restrições temporais (tempos) no comportamento de
uma tarefa (1/2)
! Tempo de computação (Computation Time)
! O tempo de computação de uma tarefa é o tempo necessário
para a execução completa da tarefa
! Tempo de início (Start Time)
! Esse tempo corresponde ao instante de início do
processamento da tarefa em uma ativação
! Tempo de término (Completion Time)
! É o instante de tempo em que se completa a execução da
tarefa na ativação.
21
Modelo de Tarefas- Restrições Temporais
Restrições temporais (tempos) no comportamento de uma
tarefa (2/2)
! Tempo de chegada (Arrival Time)
! É o instante em que o escalonador toma conhecimento de uma
ativação dessa tarefa
! Em tarefas periódicas, o tempo de chegada coincide sempre
com o início do período da ativação.
! As tarefas aperiódicas apresentam o tempo de chegada
coincidindo com o tempo da requisição do processamento
aperiódico! Tempo de liberação (Release Time)
! O tempo de liberação de uma tarefa coincide com o instante de
sua inclusão na fila de Pronto (fila de tarefas prontas) para
executar
22
Modelo de Tarefas- Restrições Temporais
! Dependendo do modelo assumido, o tempo de
liberação pode ou não coincidir com o tempo de
chegada da tarefa
! Tão logo uma tarefa chega, ela é liberada na fila de Pronto
! Contudo, o pooling do escalonador ativado por tempo
("tick scheduler”) ou o bloqueio na recepção de uma tarefa
de evento
! Pode ocasionar a não coincidência dos tempos de chegada com
as liberações (Release Jitter)
" representa a máxima variação dos tempos de liberação das instâncias
da tarefa
23
Modelo de Tarefas- Restrições Temporais
24
Modelo de Tarefas- Restrições Temporais
25
Descrição de Tarefa Períodica
! A tarefa periódica Ti pode ser descrita pela quádrupla
(Ji , Ci , Pi , Di )
! Ci representa o tempo de computação da tarefa
! Pi é o período da tarefa (tempo entre 2 ativações)
! Di é o deadline da tarefa
! Ji é o release jitter da tarefa (pior situação de liberação da
tarefa)
Modelo de Tarefas- Restrições Temporais
26
Descrição de Tarefa Períodica
(Ji , Ci , Pi , Di )
Modelo de Tarefas- Restrições Temporais
27
Descrição de Tarefa Períodica
(Ji , Ci , Pi , Di )
Modelo de Tarefas- Restrições Temporais
28
Descrição de Tarefa Períodica
(Ji , Ci , Pi , Di )
Modelo de Tarefas- Restrições Temporais
29
Descrição de Tarefa Períodica
(Ji , Ci , Pi , Di )
Modelo de Tarefas- Restrições Temporais
30
Descrição de Tarefa Períodica
! Nessa representação de tarefas periódicas, Ji e Di são
grandezas relativas (intervalos), medidas a partir do início do
período Pi
! O deadline absoluto e o tempo de liberação da k-ésima ativação
da tarefa periódica Ti são determinados a partir dos períodos
anteriores:
Modelo de Tarefas- Restrições Temporais
31
Descrição de Tarefa Períodica
3a ativação (k=3) Pi= 4ms
Di=3ms
Ji = 1ms
3a ativação
Dik = (3-1)*4 + 3 = 11ms
Ri = (3-1)*4 + 1 = 9ms
tempo de liberação da terceira ativação da
tarefa
deadline absoluto
Modelo de Tarefas- Restrições Temporais
32
Descrição de Tarefa Períodica
3a ativação (k=3) Pi= 4ms
Di=3ms
Ji = 1ms
3a ativação
Dik = (3-1)*4 + 3 = 11ms
Ri = (3-1)*4 + 1 = 9ms
tempo de liberação da terceira ativação da
tarefa
deadline absoluto
Modelo de Tarefas- Restrições Temporais
33
Descrição de Tarefa Períodica
3a ativação (k=3) Pi= 4ms
Di=3ms
Ji = 1ms
3a ativação
Dik = (3-1)*4 + 3 = 11ms
Ri = (3-1)*4 + 1 = 9ms
tempo de liberação da terceira ativação da
tarefa
deadline absoluto
Modelo de Tarefas- Restrições Temporais
34
Descrição de Tarefa Períodica
! Cada ativação da tarefa periódica é definida pelos seus tempos
absolutos
" ai = tempos de chegada
" ri = tempos de liberação
" sti =tempos de início
" cti=Tempos de término
" di=Termpos de deadline
Modelo de Tarefas- Restrições Temporais
35
Descrição de Tarefa Esporádica
! Descrita pela tripla (Ci, Di, mini)
! Ci = tempo de computação
! Di é o deadline relativo, medido a partir do instante da requisição
do processamento aperiódico (chegada da tarefa esporádica)
! mini = mínimo intervado de tempo entre duas requisições
consecutivas da tarefa esporádica
! A descrição de uma tarefa aperiódica se limite apenas às
restrições Ci e Di
Modelo de Tarefas- Restrições Temporais
36
Descrição de Tarefa Esporádica
! Descrita pela tripla (Ci, Di, mini)
! 2 requisições
! Deadline absoluto (requisição 2)
"
Relações de Precedência e Exclusão
37
! Em aplicações de tempo real, muitas vezes os
processamentos não podem executar em ordem
arbitrária
! Relação de precedência determina ordens parciais entre as
mesmas
! Exemplo1: uma tarefa Tj é precedida por Ti, ou seja,
Ti ( Ti -> Tj ). Tj somente inicia sua execução se após o término
da execução de Ti
! Exemplo 2: A-> B. Tarefa A é predecessora de B.
B é sucessora da tarefa A
Relações de Precedência e Exclusão
38
! As relações de precedência em um conjunto de tarefas
usualmente são representadas na forma de um grafo
acíclico orientado*,
! onde os nós correspondem às tarefas do conjunto e os
arcos/flechas descrevem as relações de precedência
existentes entre as tarefas
! Exemplo: ..(próximo slide)
*É um grafo orientado, onde para qualquer vértice v, não há nenhuma ligação
dirigida começando e acabando em v.
Relações de Precedência e Exclusão
39
Relações de Precedência e Exclusão
40
! Atividade
! Conjunto de tarefas interligadas por relações de
precedência
Relações de Precedência e Exclusão
41
! Relações de exclusão
! Definido pelo compartilhamento de recursos em exclusão
mútua
! Uma tarefa Ti exclui Tj quando a execução de uma seção
crítica de Tj que manipula o recurso compartilhado não
pode executar porque Ti já ocupa o recurso
! Relações de exclusão em escalonamentos dirigidos a
prioridade podem levar a inversões de prioridades onde
tarefas mais prioritárias são bloqueadas por tarefas menos
prioritárias
Relações de Precedência e Exclusão
42
! Relações de exclusão mútua entre tarefas
! Tarefas A e B apresentam exclusão mútua quando NÃO
podem executar simultaneamente
! Exemplos
" Estrutura de dados compartilhadas
" Arquivo
" Controlador de periférico
Abordagens de Escalonamento
de Tempo Real
43
! STR e Escalonamento
! Um STR é composto por: 1) um conjunto de tarefas e o 2)
somatório dos tempos de computação dessas tarefas na fila
de Pronto, que determina a carga computacional (task load )
! Task load está relacionada a aplicação e seus recursos
computacionais em um determinado instante
! Dois tipos de carga
! Carga Estática
! Carga Dinâmica
Abordagens de Escalonamento
de Tempo Real
44
! Carga Estática (ou limitada)
! Ocorre quando todas as restrições temporais das tarefas
são bem conhecidas em tempo de projeto
" São conhecidas as suas condições de chegada (arrival times)
! É possível determinar os prazos que uma carga está sujeita
! Situações de pico (pior caso) também torna-se possível
identificar em tempo de projeto
! Carga Dinâmica (ou ilimitada)
! Ocorrem em situações onde as características de chegada
das tarefas não podem ser antecipadas
Abordagens de Escalonamento
de Tempo Real
45
! Diferentes tipos de classificações (Ramamrithan&
Stankovic, 1994)
Abordagens de Escalonamento
de Tempo Real
46
! Abordagens com garantia de tempo de projeto
! É formado por abordagens que tem como finalidade a
previsibilidade determinista
! Composta por duas premissas
" a carga computacional do sistema é conhecida em tempo de
projeto (conhecida previamente-> carga estática)
" no sistema existe uma reserva de recursos suficientes para a
execução das tarefas, atendendo suas restrições temporais, na
condição de pior caso
Abordagens de Escalonamento
de Tempo Real
47
! Abordagens com garantia de tempo de projeto
! Carga estática permite realizar testes de escalonabilidade
" Determinando se o conjunto de tarefas é escalonável
! Conhecimento do pior caso (situação de pico) permite que
se possa redimensionar o sistema caso necessário! Apropriado para aplicações deterministas ou críticas onde
a carga é conhecida previamente
" Aplicações embarcadas
" Controle de tráfego ferroviário
" Controle de processos em geral
Abordagens de Escalonamento
de Tempo Real
48
! Executivo cíclico
! O teste de escalonabilidade e a produção da escala, são
realizados em tempo de projeto
! O escalonador em tempo de execução se resume a um
simples despachante, ativando as tarefas ciclicamente
! O pior caso é distante do caso médio e nem sempre ocorre
" A ativação das tarefas, embora satisfaça às restrições temporais,
implica em desperdício de recursos que são sempre reservados
para o pior caso
Abordagens de Escalonamento
de Tempo Real
49
! Dirigidos a prioridades
! Teste de escalonamento é realizado em tempo de projeto
enquanto a escala é produzida on-line por um escalonador
dirigido a prioridades
! As tarefas têm suas prioridades definidas segundo políticas
de escalonamento
" Prioridades estáticas ou dinâmicas
! Pior caso se reflete apenas no teste de escalonabilidade
que é executado em tempo de projeto, decidindo se o
conjunto de tarefas é escalonável ou não
! Abordagem mais flexiva
Abordagens de Escalonamento
de Tempo Real
50
! Abordagens de garantia dinâmica e melhor esforço
! Não tratam com uma carga computacional previsível
! A carga tratada por essas abordagens é dinâmica
" Os tempos de chegada das tarefas não são conhecidos previamente
! O pior caso não pode ser antecipado em tempo de projeto,
não se consegue prever recursos para todas as situações de
carga
! Não garante que todos os deadlines sejam respeitados
! Lidam com situações, em tempo de execução, onde os
recursos computacionais são insuficientes (situações de
sobrecarga)
! Tanto a escala como os testes de escalonabilidade são
realizados em tempo de execução
Abordagens de Escalonamento
de Tempo Real
51
! Garantia dinâmica
! Utilizam de um teste para verificar a escalonabilidade do
conjunto formado por uma nova tarefa que chega no sistema
e das tarefas que já existiam previamente na fila de pronto
" Testes de aceitação (baseados em aná lises realizadas com
hipóteses de pior caso sobre alguns parâmetros temporais)
! Se o teste indica o conjunto como não escalonável, a nova
tarefa que chegou é então descartada
Abordagens de Escalonamento
de Tempo Real
52
! Garantia dinâmica
! Garante em qualquer situação a preservação das tarefas já
previamente garantidas como escalonáveis
! Próprias para aplicações que possuam restrições críticas mas
que operam em ambientes não deterministas
" Sistema de radar
" Sistemas militares
" Controle aéreo
Abordagens de Escalonamento
de Tempo Real
53
! Melhor esforço
! São constituídas por algoritmos que tentam encontrar uma
escala realizável em tempo de execução
" sem realizar testes ou ainda, realizando testes mais fracos
! Não existe a garantia de execuções de tarefas atendendo
suas restrições temporais
! São adequadas para aplicações de tempo real brandas
como sistemas de multimídia
! Tarefas são abortadas somente em condições reais de
sobrecarga, na ocorrência de falhas temporais
" deadlines não podem ser atendidos
Exercícios
1) O que é previsibilidade? Cite e explique os dois tipos de
previsibilidade que podem ocorrer nos sistemas de tempo real.
2) Quais as diferenças entre as tarefas periódicas e aperiódicas?
3) Quais as diferenças entre um escalonamento dinâmico e
escalonamento estático?
4) Quais as diferenças entre o escalonamento preemptivo e o não
preemptivo?
5) Quais as variáveis que descrevem uma tarefa periódica?
6) Calcule o deadline absoluto de uma tarefa na sua décima
ativação (k=10), tendo 5ms de período e 4ms de deadline relativo.
7) Explique a abordagem de escalonamento de garantia dinâmica.
8) Explique a diferença entre carga estática e carga dinâmica.
54
Referências
! Kopetz, Hermann. Real-time systems: design principles for
distributed embedded applications. Springer Science &
Business Media, 2002.
! Cheng, Albert MK. Real-time systems: scheduling, analysis, and
verification. John Wiley & Sons, 2003.
! K. Ramamrithan, J. A. Stankovic. Scheduling Algorithms and
Operating Systems Support for Real-Time Systems .
Proceedings of the IEEE, Vol. 82, No 1, pp. 55-67, January
1994.
! Farines, J. M., Fraga, J. D. S., & Oliveira, R. D. Sistemas de
tempo real. Escola de Computação, 2000.
55