Escolar Documentos
Profissional Documentos
Cultura Documentos
Tradicional: Foreground/Background
Firmware: cdigo executvel bare-metal Aplicao com um eternal loop, main loop ou super loop no qual mdulos so invocados para executar as operaes desejadas Fluxo em uma nica linha de execuo como mdulos em background disparados por ISRs rotinas de servio de interrupes (ISRs) manipulando eventos assncronos (foreground) Processo em lote Um processo que executa sem interao do usurio. Processo interativo Um processo que requer interao do usurio enquanto executa
Kernel: O cara
Kernel: elemento principal e para um RTOS deve proporcionar no mnimo: task scheduling, dispatching, process manager, memory manager, intertask communication e intertask synchronization
Tipos: Nanokernel (picokernel): o dispatcher Microkernel: um nanokernel com task scheduling Kernel: um microkernel com intertask synchronization Executivo: um kernel que inclue blocos de memria privado, I/O de servios e outros recursos. A maioria dos RTOS comerciais se encaixam nesta categoria Operating System: um executivo que proporciona UI genrica, HAL (Hardware Abstraction Layer), segurana, sistema de gerenciamento de arquivos, etc
RTOS - Elementar
Tempo: determina que o sistema depende: No apenas de resultados lgicos Mas tambm um limite de produo dos resultados Real: Reao aos eventos externos deve ocorrer dentro da janela de tempo determinada Tempo referencial (interno) deve ser medido com a mesma escala de tempo do ambiente controlado (externo)
RTOS - Elementar
Multi-threading e preemptibilidade (ii) Prioridade de segmentos de programa (threads) (iii) Mecanismos de sincronizao de thread (iv) Herana de prioridade (v) Latncia predefinida
Task switching latency (Latncia de Comutao de Tarefa): tempo de salvamento do contexto de uma tarefa em execuo para alternar para outra tarefa Interrupt latency (Latncia de Interrupo): tempo decorrido entre a execuo da ltima instruo da tarefa interrompida. Primeira instruo no manipulador de interrupo Interrupt dispatch latency(Latncia de Execuo de Interrupo): Este o momento para ir da ltima instruo no manipulador de interrupo para a prxima tarefa programada a ser executada.
RTOS - Elementar
Priority Inversion (Inverso de Prioridade) Ocorre quando uma tarefa de maior prioridade deve aguardar uma tarefa de menor prioridade liberar um recurso Priority Ceiling (Prioridade Teto) Cada recurso tem uma prioridade atribuda A prioridade do segmento a maior de todas as prioridades dos recursos que ele est conservando Priority Inheritance (Herana de Prioridade) A thread (segmento de programa) de explorao de um recurso herda a prioridade da thread bloqueada
RTOS - Elementar
Preemptive scheduling (Escalonamento Preemptivo) Em um kernel preemptivo, quando um evento torna uma tarefa de maior prioridade apta para ser executada, a tarefa atual imediatamente suspensa a tarefa de maior prioridade a controle da CPU. Reentrancy (Reentrncia) Funo reentrante: pode ser usado por mais de uma tarefa sem corromper dados, podendo ser interrompida a qualquer momento para ser retomada posteriormente sem perda de dados, usando variveis locais (registros ou variveis da pilha) ou proteger dados quando variveis globais so utilizadas Funo no reentrante: no podem ser compartilhadas por mais de uma tarefa, a menos que a excluso mtua para a funo seja assegurada pela utilizao de um semforo, desabilitando as interrupes durante as sees crticas de cdigo.
RTOS - Caractersticas
Tempo de resposta de tarefas definido: esttica ou dinmica Velocidade de resposta elevada ou no: dependendo da criticidade da aplicao Capacidade de escalonar tarefas oferecendo multi-tarefa Deve ser previsvel: independentemente de falhas, sobrecargas e variaes de hardware
Deve ter design para carga de pico Fundamental que seja previsvel Tenha tolerncia a falha Deve ser capaz de tratar adequadamente a inverso de prioridade
RTOS - Categorias
Hard Real Time System:
Falhas por limitao de tempo pode gerar falhas no sistema
Arquiteturas de RTOS
Baseado em evento escalonamento prioritrio: alterna as tarefas somente, quando uma tarefa de maior prioridade necessita de ser executada preemptivo Baseado em partilha de tempo: alterna as tarefas segundo os ciclos do relgio do processador
Arquiteturas de RTOS
A arquitetura baseada em partilha de tempo - comuta entre tarefas mais frequentemente do que realmente necessrio, dando a estas a iluso de terem o monoplio do processador. Processadores mais antigos, necessitavam de muitos ciclos de relgio para alternarem entre tarefas. RTOS dessa poca tentavam minimizar o desperdcio de tempo do processador atravs da diminuio de alternncia entre tarefas. Os processadores mais recentes demoram menos tempo para mudarem de uma tarefa para outra. Quase todos os RTOS de hoje em dia implementam uma juno destes dois tipos de desenhos.
Alocao de Memria
malloc() and free() so pouco adequadas para sistemas embarcados de tempo real A fragmentao de memria pode representar um problema O tempo de execuo de malloc() and free() no so determinsticos So utilizados algoritmos para buscar espaos contnuos de memria Tempo de desfragmentao Blocos de memria com tamanho fixo obtidos a partir de uma rea contnua de memria Todos os blocos de memria tm tamanhos iguais e a rea de memria contem um nmero inteiro de blocos A alocao e liberao destes blocos de memria demora um intervalo de tempo constante e determinstica
Heap Prioritrio
Pode usar apenas uma pilha de tempo de execuo para todas as tarefas ou uma pilha de tempo de execuo em conjunto com pilhas de aplicativos diversos (pilhas ou privados), um para cada tarefa na memria Vrios casos de pilha permite que as tarefas interrompam-se, O tamanho da pilha deve ser conhecida a priori. O sistema operacional gerencia a pilhas
Prioridades
Prioridade
Um nmero ordinal que representa a importncia relativa de uma tarefa
Prioridade esttica
Uma prioridade que no ajustada automaticamente pelo sistema Prioridade esttica pode normalmente ser alterada pelo usurio
Prioridade dinmica
Uma prioridade que ajustada automaticamente pelo sistema de acordo com o comportamento de tarefa e de carga do sistema Prioridade dinmica impe uma sobrecarga no sistema Prioridade dinmica pode melhorar os tempos de resposta e eliminar a postergao por tempo indeterminado
Escalonamento de Tarefas
Como os demais sistemas operacionais, os RTOS tm uma fila onde se inserem todas as tarefas que esto prontas para serem executadas. Os algortmos de escalonamento desses sistemas visam, principalmente, satisfazer os requisitos temporais das tarefas. Estes podem ser classificados como estticos e dinmicos. Esttico mais popular: RTS (rate monotonic scheduling) ou monotmico - aumenta a prioridade dependendo do nmero de vezes que eles sero executados Dinmicos oferecem decises de escalonamento em tempo de execuo e as prioridades dos processos podem mudar. Mais popular o EDF (Earliest Deadline First ) prazo mais curto primeiro
O EDF tem a grande vantagem de ser capaz de manter a CPU todo o tempo ocupada; porm o algoritmo extremamente complexo. complexo.
Relao Monotmica
Inverso de prioridades ocorre em um sistema, onde, a fim de aplicar a taxa monotonicidade, uma tarefa no-crtica quando uma alta freqncia de execuo atribuda uma prioridade maior do que uma tarefa crtica com menor freqncia de execuo Um protocolo de teto de prioridade (PCP - Priority Ceiling Protocol ) pode ser usado para combater a inverso de prioridade, em que uma tarefa de bloquear uma tarefa de maior prioridade herda a prioridade mais alta para a durao da tarefa bloqueada. O PCP usado para programar um conjunto de tarefas peridicas dependentes que compartilham recursos protegidos por semforos
Desvantagens de um RTOS
Custo extra no kernel do software Custo de licena pode ser agravante para equipamentos muito low profile de baixo custo Sair da zona de conforto de domnio total do cdigo Maior consumo de memrias pela aplicao Necessita maior preciso quanto a tempo no design da aplicao
Referncias
An Embedded Software Primer , David E. Simon Simple Real-time Operating System: A Kernel Inside View for a Beginner , Chowdary Venkateswara Penumuchu Embedded Systems Building Blocks, Second Edition: Complete and Ready-to-Use Modules in C , Jean J. Labrosse
Fim
Obrigado!!!!