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

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

Engenharia de Sistemas Embarcados 2006.2 Aula 9: Salvo RTOS.

Apresentações semelhantes


Apresentação em tema: "Engenharia de Sistemas Embarcados 2006.2 Aula 9: Salvo RTOS."— Transcrição da apresentação:

1 Engenharia de Sistemas Embarcados 2006.2 Aula 9: Salvo RTOS

2 2006.2Engenharia de Sistemas Embarcados2 Salvo RTOS Sistema Operacional –Cooperativo –Multitarefa –Suporte a eventos –Suporte a temporização Serviços –Comunicação entre tarefas –Gerenciamento de recursos –Semáforos –Mensagens –Fila de mensagens

3 2006.2Engenharia de Sistemas Embarcados3 Como se parece um código no Salvo Função main() tarefas Código específico

4 2006.2Engenharia de Sistemas Embarcados4 RTOS Cooperativo Foco principal do Salvo –Minimização do tamanho do código Gerenciamento explícito de mudança de tarefa Não existe uma pilha de propósito geral –Redução do tamanho do código gerado Mudança de tarefa deve ocorrer a nível de tarefa –Não pode ser feita em funções chamadas pelo código da tarefa

5 2006.2Engenharia de Sistemas Embarcados5 Programação ANSI-C Compilador –Compatível com ANSI-C –Suporte a in-line assembly –Exemplo: Keil

6 2006.2Engenharia de Sistemas Embarcados6 Processadores e Compiladores Suportados

7 2006.2Engenharia de Sistemas Embarcados7 Sistemas Foreground/Background void main() { while (1) { func1(); func2(); func3(); func4(); } Superloop

8 2006.2Engenharia de Sistemas Embarcados8 Problemas de Sistemas Foreground/Background Tempo do loop afetado por mudanças nas funções ou ISR Resposta do sistema a entradas é pobre –Função é executada apenas quando é chamada Pouca flexibilidade ao programador Complicado implementar um sistema que seja crítico em termos de temporização Se o super loop ficar muito grande fica muito difícil prever a sua temporização

9 2006.2Engenharia de Sistemas Embarcados9 Tarefa 3 Tarefa 4 Sistemas Multitarefa e Mudança de Contexto escalonador Tarefa 1 Tarefa 2 Tarefa 1 Tarefa 2 independentes Tarefa 3 Tarefa 4 concorrentes

10 2006.2Engenharia de Sistemas Embarcados10 Tarefas e Interrupções

11 2006.2Engenharia de Sistemas Embarcados11 Escalonador Preemptivo Tarefa pode ser preemptada Ocorre quando tarefa de mais alta prioridade se torna elegível para ser executada Requer uso de interrupção Requer uso de gerenciamento de pilha –Garantir a corretude da mudança de contexto Seção crítica de código –Desabilitar preempção

12 2006.2Engenharia de Sistemas Embarcados12 Escalonador Preemptivo Uso de intensivo de pilha Utilização de uma pilha para cada tarefa Mudança de contexto a qualquer tempo –Aumento da complexidade do escalonador

13 2006.2Engenharia de Sistemas Embarcados13 Escalonador Cooperativo Tarefas devem cooperar para mudança de contexto Mais simples que o preemptivo Escalonador menor Potencialmente mais rápido Escalonador menos dependente de interrupções Programador sabe exatamente onde mudança de contexto ocorre Mais simples de lidar com regiões críticas

14 2006.2Engenharia de Sistemas Embarcados14 Escalonador Cooperativo Vantagens –Tempo de resposta de interrupção menor –Menor tempo de recuperação –Maior simplicidade geral Desvantagens –Menor capacidade de resposta –Tarefa de menor prioridade não é preemptada por tarefa de maior prioridade

15 2006.2Engenharia de Sistemas Embarcados15 Estrutura de Tarefa Initialize(); for (;;){ } Initialize(); for (;;){... Taskswitch(); } Escalonador cooperativo

16 2006.2Engenharia de Sistemas Embarcados16 Prioridade de Tarefas Multitarefa simples –Tarefas com a mesma prioridade –Round robin Multitarefa baseado em prioridades –Garante que o processador vai estar executando as tarefas mais importantes –Tipos de prioridades Estática Dinâmica Como garantir que um sistema não execute apenas a tarefa de mais alta prioridade?

17 2006.2Engenharia de Sistemas Embarcados17 Estados das Tarefas

18 2006.2Engenharia de Sistemas Embarcados18 Atrasos e Temporização Maneira tradicional de gerar atraso Atraso via RTOS Dependente do processador Processamento em background é complicado

19 2006.2Engenharia de Sistemas Embarcados19 Temporização via RTOS Utilização do timer do sistema Utilização de interrupção periódica Contador de ticks do sistema Dimensionamento do contador de ticks Overhead devido ao timer do sistema é inevitável Resolução e precisão do timer do sistema –Atraso de n ticks variará na faixa de n-1 a n ticks de tempo real (milisegundos por exemplo)

20 2006.2Engenharia de Sistemas Embarcados20 Multitarefa Orientada a Eventos Exemplo de Evntos

21 2006.2Engenharia de Sistemas Embarcados21 Interação entre Tarefas e Eventos Criação de um evento –Torna o evento disponível para o sistema (tarefas) Sinalização de evento –Identifica a ocorrência do evento –Pode ser sinalizado por tarefa ou outro código em background, ISR Espera de um evento –Tarefas pode ficar esperando a ocorrência de um evento –Tarefa pode esperar apenas um evento por vez –Várias tarefas podem esperar ocorrência de um mesmo evento –RTOS deve ter uma política bem definida para decidir que tarefa deve ser elegível para ser executada quando da ocorrência de evento esperado por várias tarefas

22 2006.2Engenharia de Sistemas Embarcados22 Como pensar um sistema baseado em eventos O que o sistema faz? Como dividir sua ações em tarefas? O que cada tarefa faz? Quando cada tarefa executa? Quais são os eventos? Que eventos causam a execução de que tarefas?

23 2006.2Engenharia de Sistemas Embarcados23 Comunicação Intertarefa Alguns tipos de comunicação –Semáforos –Mensagens –Fila de mensagens Comunicação –Criação do mecanismo de comunicação –Sinalização –espera

24 2006.2Engenharia de Sistemas Embarcados24 Semáforos Binários –Assumem valor 0 ou 1 Por contagem –Podem assumir n valores Semáforo deve ser inicializado com um valor Quando tarefa espera pela sinalização de um semáforo ela fica no estado bloqueado Semáforo binário Semáforo por contagem

25 2006.2Engenharia de Sistemas Embarcados25 Semáforos Sinalização de evento Sinalização de evento sem espera Sinalização de evento com espera

26 2006.2Engenharia de Sistemas Embarcados26 Sincronização de Tarefas por Eventos

27 2006.2Engenharia de Sistemas Embarcados27 Sincronização de Tarefas por Eventos

28 2006.2Engenharia de Sistemas Embarcados28 Gerenciamento de Recursos via Semáforos

29 2006.2Engenharia de Sistemas Embarcados29 Mensagens Envio de informação arbitrária para uma tarefa Tipos de informação –Número –String –Função –Pointeiro Mensagens no sistema –Podem ser diferentes –Sender e receiver devem entender o seu conteúdo Mecanismos do RTOS –Criação –Sinalização –Espera de mensagens

30 2006.2Engenharia de Sistemas Embarcados30 Mensagens Mensagens de propósito geral –Contéudo da mensagem são ponteiros –Ponteiro de dereferenciação Mensagem vazia –Ponteiro nulo (NULL) –Não pode ser dereferenciado Espera de mensagem –bloqueante

31 2006.2Engenharia de Sistemas Embarcados31 Mensagens Espera de mensagem –bloqueante Mensagem contém no máximo um item de informação (Ponteiro) Mensagem vazia  pode ser sinalizada Mensagem cheia  não pode ser enviada

32 2006.2Engenharia de Sistemas Embarcados32 Filas de Mensagens (Message Queues) Extensão de mensagens Uma fila de mensagens pode conter múltiplas mensagens –Número máximo é normalmente um parâmetro do sistema O envio de mensagens pode continuar até que a caixa de mensagens esteja cheia Uma tarefa que espera a fila de mensagens receberá mensagens até que a fila de mensagens esteja vazia RTOS deve alocar mais RAM para o gerenciamento de cada fila de mensagens –Controlar o número de mensagens na fila de mensagens –Controlar a ordem das mensagens na fila de mensagens


Carregar ppt "Engenharia de Sistemas Embarcados 2006.2 Aula 9: Salvo RTOS."

Apresentações semelhantes


Anúncios Google