Sistemas RTAI Universidade Federal de Pernambuco Centro de Informática Aluno: Anderson L. S. Moreira alsm4@cin.ufpe.br Orientador: Paulo R. R. Maciel
Agenda Introdução O que é um SOTR Como funciona Exemplo Medições Métricas Observações 28 de setembro de 2011 alsm4@cin.ufpe.br 2
Motivação Sistemas de Propósito Geral Prontos para tudo Qualquer aplicação Muitos serviços Sistemas dedicados Aplicações particulares Requisitos específicos e poucos serviços São a grande maioria 28 de setembro de 2011 alsm4@cin.ufpe.br 3
O que é um SOTR? Um sistema operacional de tempo real possibilita um método para que as aplicações desenvolvidas por programadores sejam tratadas como tarefas de tempo real. 28 de setembro de 2011 alsm4@cin.ufpe.br 4
O que é um SOTR? E tarefas de tempo real devem rodar com um mínimo tempo de latência (o tempo entre um evento como uma interrupção que aciona uma tarefa e o início da tarefa) e o mínimo jitter (variação no correr do tempo de uma tarefa que é suposto ser executado em um período fixo). 28 de setembro de 2011 alsm4@cin.ufpe.br 5
O que é? RTAI (Real-Time Application Interface) consiste em um patch no kernel do Linux e alguns módulos. Uma vez instalado o RTAI o escalonamento de processo deixa de ser responsabilidade do kernel nativo e passa a ser do RTAI. O RTAI adiciona uma camada de abstração (HAL) ao sistema Linux, que adiciona comandos para lançamento e execução de tarefas em tempo real. 28 de setembro de 2011 alsm4@cin.ufpe.br 6
Como funciona? O RTAI garante que o Linux não interfere com as tarefas de tempo real, lançando todo SO como uma tarefa de baixa prioridade. Tarefas de tempo real são lançadas com prioridades altas, nunca sendo interrompidas pelo SO. O SO só executa de fato, quando não há tarefas de tempo real executando. 28 de setembro de 2011 alsm4@cin.ufpe.br 7
Como funciona? Kernel do Linux 28 de setembro de 2011 alsm4@cin.ufpe.br 8
Como funciona? Kernel do Linux RTAI 28 de setembro de 2011 alsm4@cin.ufpe.br 9
Como funciona? Para lançar tarefas Real Time, estas são inseridas no kernel como módulos. Tem-se assim dois domínios de execução de tarefas, o Real Time e o Linux user space. Existem vários mecanismos que permitem que uma tarefa Real Time se comunique com uma tarefa Linux. *É necessário que se tenha privilégios de administração. 28 de setembro de 2011 alsm4@cin.ufpe.br 10
Exemplo Olá Mundo Uma aplicação RTAI simples que quando é carregada e eliminada no kernel imprime uma mensagem, não sendo lançada nenhuma tarefa de tempo real. 28 de setembro de 2011 alsm4@cin.ufpe.br 11
Exemplo Olá Mundo /* Escreve Olá Mundo e Tchau no console*/ #include <linux/kernel.h> #include <linux/module.h> int init_module(void) { printk( Ola mundo... "); return 0; //ini_module OK } void cleanup_module(void) { printk( Tchau!\n"); } 28 de setembro de 2011 alsm4@cin.ufpe.br 12
Exemplo Olá Mundo O Makefile para compilar este módulo poderá ser: MI_OBJS = mundo.o RTAIDIR = /usr/src/rtai #RTAI home ifdef TOPDIR include $(TOPDIR)/Rules.make endif #chama Makefile definido no diretório de instalação RTAI all: make -C $(RTAIDIR) modules SUBDIRS=$(PWD) clean: make -C $(RTAIDIR) subclean SUBDIRS=$(PWD) 28 de setembro de 2011 alsm4@cin.ufpe.br 13
Exemplo Olá Mundo Para esta simples aplicação RTAI, inserir, remover e visualizar os módulo no kernel pode ser efetuado com: Para inserir o módulo: insmod mundo.o Para listar módulos: lsmod Para remover o módulo: rmmod hello 28 de setembro de 2011 alsm4@cin.ufpe.br 14
Exemplo Olá Mundo Para visualização das mensagens enviadas com printk pode ser usado o script: #!/bin/sh echo Loading module insmod mundo.o rmmod mundo.o dmesg tail -n3 echo "ou:" cat /var/log/kern.log tail -n3 28 de setembro de 2011 alsm4@cin.ufpe.br 15
Medições Aplicação Parâmetros dos requisitos do SOTR Componentes do SOTR Escalonador Primitiva de comunicação Primitiva de gerência Etc... Captura de Dados Reunião de Dados 28 de setembro de 2011 alsm4@cin.ufpe.br 16
Medições Tarefas Periódicas Fonte: Farines, 2003 28 de setembro de 2011 alsm4@cin.ufpe.br 17
Medições Tarefas Aperiódicas Fonte: Farines, 2003 28 de setembro de 2011 alsm4@cin.ufpe.br 18
Métricas Tempo de troca de contexto Métrica muito citada no mercado de SOTR; Na modelagem a troca de contexto pode ser somado ao tempo máximo de execução de cada tarefa; Necessariamente, cada ativação de cada tarefa deverá carregar o seu contexto e salvá-lo depois. Se a tarefa em questão é preemptada por outra, a interferência que ela sofre da outra incluirá o tempo de chaveamento de contexto 28 de setembro de 2011 alsm4@cin.ufpe.br 19
Métricas Latência dos Tratadores de Interrupção Tempo entre a sinalização de uma interrupção no hardware e o inicio da execução de seu tratador; Atraso no reconhecimento da interrupção pode ser modelado como um release jitter associado com cada pseudo-tarefa tratador de interrupção ; Interrupções podem ter prioridades na arquitetura Pseudo-tarefa tratador de interrupção recebe interferência quando é atrapalhada por um tratador de interrupção mais prioritária; Sofre release jitter quando atrasa em função de uma tarefa de prioridade mais baixa desabilitar interrupções. 28 de setembro de 2011 alsm4@cin.ufpe.br 20
Observações Aplicações de tempo real são mais facilmente construídas se puderem aproveitar os serviços de um sistema operacional; Comportamento temporal do SO afeta o comportamento temporal da aplicação Exemplo: tratador de interrupções do timer 28 de setembro de 2011 alsm4@cin.ufpe.br 21
Observações Aspecto importante: análise em tempo de projeto Duas abordagens Utilizar uma análise determinística; Desenvolver uma baseada em hipóteses. 28 de setembro de 2011 alsm4@cin.ufpe.br 22
Sistemas RTAI Universidade Federal de Pernambuco Centro de Informática Aluno: Anderson L. S. Moreira alsm4@cin.ufpe.br Orientador: Paulo R. R. Maciel