A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

INTRODUÇÃO A SISTEMAS DE TEMPO REAL PARA MICROCONTROLADORES IFBA - Raimundo Jorge Abreu- 2009.

Apresentações semelhantes


Apresentação em tema: "INTRODUÇÃO A SISTEMAS DE TEMPO REAL PARA MICROCONTROLADORES IFBA - Raimundo Jorge Abreu- 2009."— Transcrição da apresentação:

1 INTRODUÇÃO A SISTEMAS DE TEMPO REAL PARA MICROCONTROLADORES IFBA - Raimundo Jorge Abreu- 2009

2 Introdução (RTOS - Real Time Operating System) é um sistema de computação destinado à execução de múltiplas tarefas onde o tempo de resposta a um evento (externo ou interno) é pré-definido (RTOS - Real Time Operating System) é um sistema de computação destinado à execução de múltiplas 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 Os STR tem que reagir, dentro de um prazo pré-definido

3 Introdução: Exemplos de Sistemas de Tempo Real 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

4 Modelo:

5 Definições gerais: Tarefa ( task ) - Segmento de código de um programa. Tarefa ( task ) - Segmento de código de um programa. – 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 – Prioridade – Urgência na execução da tarefa, P

6 Definições gerais: Classificação: hard real-time hard real-time – Falhas temporais podem levar a catástrofes – Exemplo – sistema de freios ABS Soft real-time Soft real-time – Resposta dentro de uma média de tempo é aceitável – Exemplo – video games, tocadores MP3

7 Sobre Tarefas: Tarefas podem ser – Periódicas - Período de requisição é fixo e conhecido, características de sistema Time-triggered Ex: Medida e controle de temperatura – Esporádica – Intervalo mínimo conhecido Ex: Atendimento a um botão pressionado – Aperiódica – Nada se sabe sobre o tempo de resquisição. Ex: Falha no sistema de alimentação.

8 Sobre Tarefas:

9 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) 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

10 Escalonamento(scheduling ) Aloca às tarefas recursos computacionais, normalmente tempo do processador. 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 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 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

11 Abordagem de escalonamento Diferentes abordagem são necessárias pois os sistemas variam enormemente Diferentes abordagem são necessárias pois os sistemas variam enormemente Tarefas periódicas Tarefas periódicas – Baseado no tempo(timer driven) Executivo Cíclico (Cyclic Executives) Executivo Cíclico (Cyclic Executives) – Baseado em prioridade(priority driven) Taxa monotonica (rate monotonic) RM Taxa monotonica (rate monotonic) RM EDF (Earliest Deadline First) EDF (Earliest Deadline First)

12 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 constituem um escalonamento completo (ou ciclo principal) – Tarefas de menor período dita o ciclo mínimo de tempo – Tarefas de maior dita o ciclo de tempo máximo – 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.

13 Executivo Cíclico Considere um conjunto de tarefas Tarefa, tPeríodo, T Tempo de computação,C t1258 t2258 t3504 t4504 t51004

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

15 Executivo Cíclico while(1) { wait_for_tick(); // espera por um sinal do temporizador wait_for_tick(); // espera por um sinal do temporizador Task(t1); Task(t2); Task(t3); Task(t1); Task(t2); Task(t3); wait_for_tick (); wait_for_tick (); Task(t1); Task(t2); Task(t4); Task(t5); Task(t1); Task(t2); Task(t4); Task(t5); wait_for_tick (); Task(t1); Task(t2); Task(t3); Task(t1); Task(t2); Task(t3); wait_for_tick(); wait_for_tick(); Task(t1); Task(t2); Task(t4); }

16 Escalonamento Baseado em prioridade(priority driven) Rate Monotonic O algoritmo RM atribui prioridades a tarefas de acordo com suas taxas(períodos) 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. 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 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 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 Para o RM, as tarefas tem um deadline igual a seu período

17 Rate Monotonic (taxa monotônica) Seja T1=2, C1=1,T2 = 5, C2=1,5 logo T1 P(t2) Neste caso o escalonamento de τ1 e τ2 é possível

18 Rate Monotonic (taxa monotônica) Seja T1=2, C1=1,T2 = 5, C2=2,5 logo T1 P(t2) Neste caso o escalonamento de τ1 e τ2 não é possível

19 Escalonamento não Rate Monotonic Se T1<T2, e P(t1)<P(t2) Então C1 + C2 ≤ T1 Seja T1=2, C1=1,T2 = 5, C2=1 Temos :

20 Análise de escalonabilidade do RM Análise pelo tempo de resposta (Ci) 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 Esta condição é necessária Análise pela utilização do processador (U) Análise pela utilização do processador (U)  Uso do processador é dado por:  Para n tarefas temos:  É para um sistema escalonável é suficiente que:

21 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.

22 Implementação Salvando o contexto

23 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. Int a; Int Func(int b) { a =b; b=a+2; return(b) } C=func(3);  interrupção - → d=func(2);

24 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. 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. Segue exemplo de sub-rotina reentrante. Implementação

25 // reentrante public_trans segcodsegmentcode segdatsegmentdata SCON_1equ0C0h SBUF_1equ0C1h TI_1equSCON_1.1 rsegsegdat var1:ds1 rsegsegcod ;--------------------------------------------------- ; unsigned char trans(char code *) r6:r7 ; Salva na pilha var1 para que a subrotina se torne ; reentrante ;--------------------------------------------------- _trans:pushvar1 movdph,r6 movdpl,r7 movvar1,#0 volta:clra movca,@a+dptr jzfim jnbTI_1,$ clrTI_1 movSBUF_1,a incdptr incvar1 jmpvolta fim:movr7,var1 popvar1 ret end

26 Máquina de estados Uma máquina de estados finitos é uma modelagem de um comportamento, composto por estados, transições e ações. 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 Um estado armazena informações sobre o passado Uma transição indica uma mudança de estado 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. Uma ação é a descrição de uma atividade que deve ser realizada num determinado momento.

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

28 Máquina de estados Maquina de estados da rotina de varredura do display

29 Perguntas? Fim da III unidade


Carregar ppt "INTRODUÇÃO A SISTEMAS DE TEMPO REAL PARA MICROCONTROLADORES IFBA - Raimundo Jorge Abreu- 2009."

Apresentações semelhantes


Anúncios Google