Você está na página 1de 37

INTRODUÇÃO A SISTEMAS DE

TEMPO REAL PARA


MICROCONTROLADORES

IFBA - Raimundo Jorge Abreu- 2022


Introdução
• (RTOS - Real Time Operating System) é um
sistema de computação destinado à execução
de tarefas onde o tempo de resposta a um
evento (externo ou interno) é pré-definido
• Os STR tem que reagir, dentro de um prazo
pré-definido
Introdução
Por que sistemas de tempo real?
• Aplicações de microcontroladores em grande
parte são voltadas a controle e
monitoramento de variáveis, onde é
extremante necessário conhecer o tempo de
resposta.
Introdução:
• Exemplos de Sistemas de Tempo Real
 Centrais telefônicas, videoconferência
 Automação em aeronaves, sondas espaciais
 Radar, sonar, sistema guia em mísseis
 Controle de processos, robôs, aquisição de dados
 Transações em bolsa, negociação automática
 Vídeo games, vídeo sob demanda, áudio
Modelo:

Figura 1 – Modelo de tempo real


Modelo
• Restrições temporais do sistema controlado
Sendo T uma restrição de tempo para a leitura das amostras, então:

Sendo δ uma restrição do tempo de resposta, então:

• O sistema controlado impõe restrições:


-Atrasos nas leitura de dados do sistema
-Atrasos de processamento dos dados
-Variações dos atrasos (Jitter)
Modelo: Requisitos temporais
Classificação:
• Soft real-time
– Resposta dentro de uma média de tempo é aceitável
– Exemplo – video games, tocadores MP3
• Firm real-time
― Respostas após um limite D, perde qualquer importância
― Exemplo – Rede de transmissão de dados
• hard real-time
– O não cumprimento das restrições podem levar a falhas
catastróficas
– Exemplo – sistema de freios ABS
Definições gerais:
• Tarefa ( task ) - Segmento de código de um
programa, que em execução atende um
finalidade.
– Período de requisição – Intervalo de tempo entre
requisições. Ti
– Run Time - Tempo de execução sem interrupção, Ci
• Tempo de Execução no Pior Caso (WCET) Worst Case Execution
Time.
– Deadline – tempo limite para a término da execução de
uma determinada tarefa, Di (quase sempre Di=Ti)
– Prioridade – Urgência na execução da tarefa, P
Sobre Tarefas:
• Tarefas podem ser
– Periódicas - Período de requisição é fixo e conhecido,
características de sistemas Time-triggered (Di = Ti)
• Ex: Medida e controle de temperatura
– Esporádica – Intervalo mínimo conhecido, característica de
sistemas Event-triggered
• Ex: Atendimento a um botão pressionado
– Aperiódica – Nada se sabe sobre o tempo de requisição.
• Ex: Falha no sistema de alimentação.
Sobre Tarefas:
Sobre Tarefas:

Figura 2 – Diagrama Temporal


Ativação de Tarefas
• Por evento (Event-triggered)
– Tarefas são disparadas pela percepção da ocorrência de eventos
– Pode ocorrer uma falha do sistema na ocorrência de alta taxas
de eventos
– Ex: Alguém pressionou o botão de PLAY

• Por tempo (Time-triggered)


– Tarefas respondem a eventos em momentos predeterminados
– Sistemas menos versáteis
– Permite determinismo temporal
– Ex: tick para incrementar um relógio
Escalonamento(scheduling )
• Aloca às tarefas recursos computacionais, normalmente
tempo do processador.
• Distribuir recursos computacionais ao longo do tempo de
forma que as tarefas do sistema preservem seus requisitos
temporais
• Nem sempre possível escalonar um número de tarefas com
períodos Ti e tempos de execução Ci
• Escalonamento
– Estático ( static scheduling )
• A decisão de qual tarefa será executada é feita antes de ligar o
sistema (off-line)
• Capaz de oferecer previsibilidade determinista
– Escalonamento Dinâmico ( dynamic scheduling )
• A decisão de qual tarefa será executada é feita com o sistema em
funcionamento
• Capaz de oferecer apenas previsibilidade probabilista
Abordagem de escalonamento
• Diferentes abordagem são necessárias pois os
sistemas variam enormemente
• Tarefas periódicas
– Baseado no tempo(timer driven)
• Executivo Cíclico (Cyclic Executives)
– Baseado em prioridade(priority driven)
• Taxa monotonica (rate monotonic) RM
• EDF (Earliest Deadline First) *
Abordagem de escalonamento
• Executivo Cíclico (Cyclic Executives)
– Uma maneira comum de implementar Hard Real-time é
usar um executivo cíclico
– As tarefas são mapeadas em um conjunto de ciclos
menores, que juntos constituem um escalonamento
completo (ou ciclo principal)
– Tarefas de menor período dita o ciclo mínimo de tempo
– Período das tarefas é sempre múltiplo do ciclo mínimo de
tempo
– Tem a vantagem tem a de ser totalmente determinístico
– Tem problemas com tarefas não periódicas.
– Todo trabalho de escalonamento é feito no projeto.
(estático)
Executivo Cíclico
• Considere um conjunto de tarefas
Tarefa, t Período, T Tempo de
computação,C

t1 25 8

t2 25 8

t3 50 4

t4 50 4

t5 100 4

Figura 3 – Lista de Tarefas


Executivo Cíclico
• Distribuição temporal das tarefas

Figura 4 – Diagrama temporal


Executivo Cíclico
• Considere um conjunto de tarefas

Tarefa, t Período, T Tempo de computação,C

t1 5 2

t2 10 2

t3 10 2

Figura 5 – Diagrama temporal

Fazer distribuição temporal das tarefas.


Executivo Cíclico
A Utilização do processador U é data por:

Para uma tarefa

Para n tarefas
Executivo Cíclico

while(1) {
wait_for_tick(); // espera por um sinal do temporizador
Task(t1); Task(t2); Task(t3);
wait_for_tick ();
Task(t1); Task(t2); Task(t4); Task(t5);
wait_for_tick ();
Task(t1); Task(t2); Task(t3);
wait_for_tick();
Task(t1); Task(t2); Task(t4);
}
Escalonamento Baseado em
prioridade(priority driven)
Rate Monotonic
•O algoritmo RM atribui prioridades a tarefas de acordo com
suas taxas(períodos)
•Tarefas com maiores taxas de requisição (menor período)
tem maior prioridade .
•Como os períodos são constantes, o RM é um algoritmo de
prioridade estática
•Algoritmo preemptivo: uma nova tarefa com período menor
preempta uma tarefa que estiver sendo executada
•Para o RM, as tarefas tem um deadline igual a seu período
Rate Monotonic (taxa monotônica)
Seja T1=2, C1=1 ,T2 = 5, C2=1,5 logo T1<T2, e P(t1)>P(t2)

Figura 6 – Diagrama temporal RM

Neste caso o escalonamento de τ1 e τ2 é possível


Rate Monotonic (taxa monotônica)
Seja T1=2, C1=1 ,T2 = 5, C2=2,5 logo T1<T2, e P(t1)>P(t2)

Figura 7 – Digrama temporal RM com perda de deadline

Neste caso o escalonamento de τ1 e τ2 não é possível


Análise de escalonabilidade do RM
• Análise pelo tempo de resposta (Ci)
Dado T1 < T2
P(τ1) > P(τ2)
floor(T2/T1) * C1 + C2 ≤ T2
Esta condição é necessária
• Análise pela utilização do processador (U)
 Uso do processador é dado por:

 Para n tarefas temos:

 É para um sistema escalonável é suficiente que:


mas não necessário
Análise de escalonabilidade do RM
• Utilização=100%
• Obviamente falha no teste de utilização

Task T C P U
t1 80 40 1 50%
t2 40 10 2 25%
t3 20 5 3 25%
Implementação:
 O escalonador é a tarefa de maior prioridade
logo tem o menor período
 Todas as tarefas tem períodos múltiplos do
período do escalonador
 O contexto deve ser salvo durante a
preempção de uma tarefa.(difícil)
 As funções compartilhadas pela tarefas devem
ser reentrantes.
Implementação

Figura 8 – Preempção de tarefa e salvando o contexto


Implementação
• Reentrância - uma sub-rotina ou função é dita
reentrante se, pode ser interrompida e
executada a partir do início sem ter seus
resultado alterados ou corrompidos.
C=func(3);  interrupção -→ d=func(2);

Int a;
Int Func(int b) {
a =b;
b=a+2;
return(b)
}
Implementação
• Reentrância – para uma sub-rotina ser
reentrante basta ter suas variáveis salvas na
pilha no momento de sua invocação e
restaurada no momento da saída da sub-
rotina.
Segue exemplo de sub-rotina reentrante.

nreentrante:
reentrante:
mov a,r7
push acc
add a,#2 push AR7
mov r7,a mov a,r7
ret add a,#2
mov r7,a
pop AR7
pop acc
ret
Tempo de resposta
Dado um conjunto de n tarefas τ1, τ2, τn, e para cada tarefa τj com período de
requisição Tj e um WCET Cj. O tempo de resposta Ri de uma tarefa τi, é
definido como o tempo máximo entre qualquer requisição de uma tarefa τi e a
sua correspondente conclusão.

Na figura 6, o tempo de resposta de τ2 é dado por:

Para três tarefas, o tempo de resposta é dado por:


Tempo de resposta
Equação genérica para n tarefas:
Máquina de estados
• Uma máquina de estados finitos é uma
modelagem de um comportamento,
composto por estados, transições e ações.
• Um estado armazena informações sobre o
passado
• Uma transição indica uma mudança de estado
• Uma ação é a descrição de uma atividade que
deve ser realizada num determinado
momento.
Máquina de estados

Diagrama de transição de estados. - Máquina de Mealy


Máquina de estados
Maquina de estados da
rotina de varredura do
display
Implementação:
void maquina(void) {
char estado;
switch(estado) {
case 0:
DSP0 = 1;
DSP1 = 0;
break;
case 1:
DSP1 = 1;
DSP2 = 0;
break;
case 2:
DSP2 = 1;
DSP3 = 0;
break;
case 3:
DSP3 = 1;
DSP4 = 0;
break;
case 4:
DSP4 = 1;
DSP5 = 0;
break;
case 5:
DSP5 = 1;
DSP0 = 0;
break;
}
}
Perguntas?
Fim da III
unidade

Você também pode gostar