DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas...

61
DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas Silveira.

Transcript of DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas...

Page 1: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Sistemas em Tempo Real

Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real.

Jarbas Silveira.

Page 2: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Ementa:

5. Sistemas operacionais e Linguagens de Programação em tempo real: Real-Time Linux; Ambiente Java; Corba; ADA; OCCAM; C

Roteiro

Page 3: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Sistemas operacionais e Linguagens de Programação em tempo real:

- Introdução- Soft e Hard real time- Projeto de aplicações RT- RT threads- Comunicação com tarefas RT- Exemplo: central de acesso- Conclusões

Roteiro

Page 4: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Hard ou soft realtime?

- Soft real-time tolera alguma variação na resposta a eventos.- Hard real-time requer resposta imediata, com pouca variação.- Sistemas operacionais "normais" não prevêem tarefas real-time.

Soft e Hard real time

Page 5: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Latência

Linux: Até ~600us para uma interrupção, scheduler 10ms (jiffies).

MS-Windows: (ilimitado?) para responder a interrupções, scheduler 55ms.

RT-Linux: valores tipicamente entre 10 a 100us

Soft e Hard real time

Page 6: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

- Dedicados, projetados com características de Tempo Real;- Novo projeto necessário; - Problemas de manutenção; - Perde acesso a uma base de programas e ferramentas (TCP/IP, conectividade, X-Windows, ...) já existentes.

Real time kernels

Page 7: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

- Extensão para um kernel já existente

- Esforço limitado ao desenvolvimento de alguns "patches" ;- Manutenção simplificada;- Acesso a virtualmente toda a base de software existente, incluindo redes, tcp/ip, X, tcl/tk, python)

Real time kernels

Page 8: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Linux Trace Toolkit (LTT)Robótica, embedded systems. InstrumentaçãoEletrofisiologia Aquisição de dados Data analysers Osciloscópios

Aplicações

Page 9: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Aplicações

Page 10: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Aplicações

Page 11: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Alternativas de sistemas RT

- KURT: módulos standard do kernel, timer reprogramado sob demanda, novo scheduler.- RTAI: baseado no RT-Linux, maior compatibilidade POSIX.- QNX: microkernel, comercial, drivers são programas user-level.

Page 12: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

RT Linux-O RTLinux é um sistema operacional de tempo real crítico;- O seu desenvolvimento foi iniciado no Departamento de Ciência da Computação do Instituto Tecnológico do Novo México, por Michael Barabanov e Victor Yodaiken;- Foi recentemente adquirido pela empresa Wind River, mas ainda disponibiliza uma versão livre;

Page 13: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

RT Linux- É importante não confundir a versão do RTLinux com a versão do kernel do Linux.

- RTLinux não é um código independente, isto é, não é uma nova versão de Linux.

- Parte da distribuição do RTLinux é um "patch" sobre o kernel do Linux e a outra parte são módulos carregáveis;

Page 14: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

RT Linux

- O RTLinux é um sistema operacional no qual um kernel de tempo real coexiste com o kernel do Linux. - O objetivo deste modelo é permitir e facilitar que aplicações utilizem os serviços do Linux (comunicação com a rede, sistema de arquivos, controle de processos etc.). O Linux é responsável até mesmo pela inicialização do RTLinux e pelos drivers.

Page 15: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

RT Linux

-O kernel de tempo real situa-se entre o kernel do Linux padrão e o hardware - Além disso, o kernel de tempo real executa o kernel convencional como sua tarefa de mais baixa prioridade (tarefa Linux), usando o conceito de máquina virtual para tornar o kernel convencional e todas as suas aplicações completamente interrompíveis.

Page 16: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

RT Linux

Detalhes do Kernel do Linux

Page 17: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

RT Linux

Detalhes do kernel do RT-Linux

Page 18: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

RT Linux

-O kernel de tempo real situa-se entre o kernel do Linux padrão e o hardware - Além disso, o kernel de tempo real executa o kernel convencional como sua tarefa de mais baixa prioridade (tarefa Linux), usando o conceito de máquina virtual para tornar o kernel convencional e todas as suas aplicações completamente passíveis de serem interrompidas.

Page 19: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

RT Linux

-É introduzida uma camada adicional de abstração – denominada “máquina virtual" - entre o kernel padrão do Linux e o hardware do computador;- Esta nova camada introduz seu próprio escalonamento de prioridades fixas. Este escalonamento atribui prioridade mais baixa para o kernel padrão de Linux, que funciona então como uma tarefa independente.

Page 20: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

RT Linux

-A camada de abstração introduzida pelo RTLinux trabalha interceptando todas as interrupções de hardware. - As interrupções de hardware não relacionadas às tarefas de tempo real, como interrupção de software, são passadas então ao kernel do Linux para serem executadas.

Page 21: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

RT Linux- Caso a tarefa seja de tempo real, a rotina de serviço de tempo real apropriada é executada. As tarefas de tempo real têm dois atributos especiais: são “privilegiadas" (isto é, têm o acesso direto ao hardware), e não usam a memória virtual.

- As tarefas de tempo real são escritas como os módulos que podem ser dinamicamente carregados na memória. As tarefas de tempo real não esperam para executar as chamadas de sistema Linux.

Page 22: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Interrupções no RT Linux

- Um dos problemas de tempo real crítico em sistemas Linux é o fato de que o kernel desabilita as interrupções temporariamente como forma de sincronização ou controle de acesso a regiões críticas;

- Ao desabilitar as interrupções, o relógio de interrupções fica bloqueado e conseqüentemente há uma perda de precisão temporal.

Page 23: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Interrupções no RT Linux

- O RTLinux implementa uma camada de emulação entre o Kernel do Linux e o controlador de interrupções de hardware. - Todas a chamadas para cli, sti, iret (chamadas assembler que modificam o estado das interrupções) são repassadas pelas macros S_CLI, S_STI e S_IRET que emulam as chamadas cli, sti e iret respectivamente. Desta forma o Linux nunca poderá desabilitar as interrupções.

Page 24: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Escalonamento- A principal função de um escalonador de tempo real é satisfazer os requisitos temporais das tarefas; - Existem muitas formas de garantir as restrições temporais e há também muitas políticas de escalonamento, sendo que, uma política dificilmente é apropriada para todas as aplicações;

- O RTLinux permite a possibilidade de um programador escrever o seu próprio escalonador.

Page 25: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Escalonamento

Modelo de escalonamento em RTLinux

Page 26: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Escalonamento

- Os escalonadores podem ser implementados e carregados como módulos de kernel. Isto torna possível o programador testar facilmente diferentes políticas e algoritmos de escalonamento a fim de escolher o melhor para a sua aplicação;

- Dois escalonadores podem ser bem implementados. Um deles é baseado em prioridade fixa, o outro usa o algoritmo Earliest Deadline First (EDF).

Page 27: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Escalonamento

Prioridades Fixas

- Se houver diversas tarefas que estão prontas para executar, a tarefa com maior prioridade é executada. - Sempre que as tarefas se tornam prontas para serem executadas então a tarefa em execução é interrompida se esta for de baixa prioridade.

Page 28: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Escalonamento

Prioridades Fixas

-Uma tarefa esporádica pode ser implementada definindo uma interrupção para ativá-la quando necessário.- O escalonador suporta diretamente tarefas periódicas. O período e o tempo de ativação são especificados para cada tarefa.

Page 29: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Escalonamento

-Prioridades Fixas

-Para tarefas periódicas com os fins do prazo iguais aos períodos uma maneira natural de atribuir prioridades é dada pelo algoritmo de escalonamento rate monotonic. Este algoritmo diz que as tarefas com períodos mais curtos têm maior prioridade.-As tarefas Linux são tratadas como tarefas de baixa prioridade. Assim o Linux funciona somente quando o sistema do tempo do real não tem nada para fazer.

Page 30: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Escalonamento

Earliest Deadline First (EDF)

-Outro escalonador é o que foi implementado por Ismael Ripoll, onde ele usa o algoritmo Earliest Deadline First (EDF). Neste algoritmo as tarefas não têm prioridade. Assim, as tarefas com menor deadline possuem maior prioridade.

Page 31: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Comunicação entre processos

-Desde que o Linux possa ser preemptado por qualquer tarefa de tempo real a qualquer momento, nenhuma rotina Linux pode ser chamada de forma segura a partir de uma tarefa de tempo real.- Porém, alguns mecanismos de comunicação devem estar presentes. Filas FIFO são usados pelo RTLinux para manipular informações entre processos Linux ou entre o kernel do Linux e processos de tempo real.

Page 32: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Comunicação entre processos

-As filas RT-FIFO são alocados no nível do kernel e são referenciadas por números inteiros. Existe um limite estático para o número de filas FIFOs que podem ser mudadas durante a recompilação do kernel.- Contudo, processos Linux enxergam as filas FIFOs como arquivos especiais de caracteres. Normalmente estão no diretório /dev/rtf0, dev/rtf1, etc.

Page 33: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Comunicação entre processos

-As FIFOs são utilizadas como se fossem arquivos normais (open read/write close). Para poder utilizá-las, elas devem ter sido criadas antes que um processo normal do Linux possa fazer um open sobre ela.

Page 34: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Aplicações- O campo de aplicação de RTLinux é muito amplo, com ele podemos tomar o controle total do PC;- Em uma tarefa de tempo real, podemos acessar todas as portas do PC, instalar controladores de interrupções, desabilitar temporariamente as interrupções;- Atualmente é utilizado em plantas industriais, na forma de controle e automação;- Também é utilizado como componentes na fabricação de produtos tais como roteadores, receptores GPS e sistemas embarcados, no caso da automação e controle industrial.

Page 35: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Aplicações-O RTLinux se integra facilmente com os sistemas corporativos, tais como acesso à base de dados como Oracle e o DB2 e servidores Web. - Muitas empresas utilizam o RTLinux em suas instalações e atividades tais como: a Agencia Espacial Norte Americana (NASA), utiliza RT Linux para controle de mísseis, a Fujitsu utiliza-o em controle de robôs, telescópios e outros projetos científicos, a Siemens automatizou sua fábrica com RTLinux.

Page 36: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Introdução

BlueCat: Sistema de tempo real embarcado; RTOS (Real-Time Operation System)

próprio para arquiteturas multiprocessadas;

Kenerl customizável; Programação utilizando o padrão POSIX.

Page 37: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Sistema baseado no kernel 2.6; Disponível para as arquiteturas x86,

PowerPC, ARM, MIPS, e todas as placas de RTOS;

Kernel preemptível; Escalonador de baixa latência.

Características

Page 38: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Instalação

Tem que pedir o cd pelo site: http://www.lynuxworks.com/

products/bluecat/embedded-linux-cd.php

Veja a arquitetura que deseja: http://www.lynuxworks.com/board-

support/all-linux.php

Page 39: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Referências Bibliográficas

http://www.lynuxworks.com/support/bluecat/docs/bluecat55/0851-00-bcl55_ug.pdf

http://lynxos.org/support/courses/bclinux.php3

Page 40: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Introdução (KURT)

Kansas University Real-Time Linux: Linux modificado para ter um

escalonador em tempo real; Sistema de tempo real soft; Fácil de implementar; Escalonador muito eficiente. Gerenciamento dos eventos de tempo

real em uma escala de 10ms.

Page 41: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Patch aplicado ao kernel 2.4.18 (última versão);

Disponível apenas para a arquitetura PC; Dois modos de operação:

Normal: Apenas eventos que não sejam em tempo real;

Real-Time: Apenas eventos que sejam em tempo real.

Framework em tempo real que pode escalonar qualquer evento

Características

Page 42: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Instalação I

Faça o download dos seguintes arquivos:

http://www.ittc.ku.edu/kurt/downloads/kurt-2.4.18-2.patch

http://www.ittc.ku.edu/kurt/downloads/kurt-2.4.18-2.tar.bz2

http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.18.tar.bz2

Descomprima todos os arquivos (dica, no diretório /usr/src ):

Page 43: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Instalação II

Aplique o patch dentro do diretório do kernel descompactado:

# patch -p1 -s < /diretorio/kurt-2.4.18.patch

Na configuração do kernel, marque todas as opções que tem haver com UTIME e KURT como 'build-in';

Compile o kernel e reinicie o pc com o novo kernel.

Page 44: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Instalação III

Compile os fontes do diretório kurt-2.4.18-2;

Não esqueça de criar a variável de ambiente KURTLINUX com o caminho do kernel 2.4.18;

Crie os seguintes devices: # mknod /dev/kurt c 240 0 # mknod /dev/utime c 241 0 # mknod /dev/dstream c 242 0

Page 45: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Referências Bibliográficas

http://hegel.ittc.ukans.edu/projects/kurt http://www.linuxdevices.com/articles/AT9514980

326.html http://www.ittc.ku.edu/kurt/papers/user-manual-

DRAFT.pdf

Page 46: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Introdução

Xenomai: Sistema de tempo real hard; Trabalha com diversos tipos de RTOS

(Real-Time Operation System) para oferecer serviços genéricos;

Estes serviços criam uma camada abstrata para emular módulos de aplicações em tempo-real, que imita APIs de kernel de tempo-real.

Page 47: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Aplicado a qualquer kernel menor ou igual à versão 2.6.23 (versão);

Disponível para as arquiteturas x86, PowerPC, ARM, MIPs, entre outras;

Tem como dependência a camada de virtualização Adeos (Adaptive Domain Environment for Operation System)

Características

Page 48: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Instalação I

Faça o download dos seguintes arquivos:

http://download.gna.org/xenomai/testing/xenomai-2.4-rc4.tar.bz2

http://download.gna.org/adeos/patches/v2.6/i386/adeos-ipipe-2.6.23-i386-1.10-10.patch

http://www.kernel.org (última versão do kernel)

Descomprima todos os arquivos (dica, no diretório /usr/src ) e compile-os.

Page 49: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Instalação II

Na configuração do kernel, tenha os seguintes cuidados:

Marque todas as opções para 'Real-time sub-system';

Marque a opção que referece à interrupções de pipeline;

Compile o kernel e reinicie o pc com o novo kernel.

Page 50: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Referências Bibliográficas

http://stud3.tuwien.ac.at/~e0226686/xenomai/xenomai_implementation.pdf

http://www.xenomai.org/index.php/Main_Page

Page 51: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Projetos

Desenvolver uma plataforma para análise de formas de onda através da porta-paralela, serial ou USB, com o objetivo de comparação de aptidão a tempo real, no quesito tempo de latência, de diversos sistemas operacionais ditos de tempo real;

- Equipes: 3 pessoas (Máximo)- Sugestão: 3 trios e 2 duplas

Page 52: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Projetos

-O sistema deverá reproduzir em formato gráfico a forma de onda adquirida. O sistema deverá ser testado com carga máxima e mínima;-Utilize um ADC0808 ou similar para a aquisição do sinal do gerador;

SOTR + LOAD

ADC

PARALELA OU SERIAL

LAT FREQ

GERADOR DE FREQ.

Page 53: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Projetos

- Fase 1: seminários sobre cada sistema operacional, apresentando arquitetura proposta, APIs utilizadas e viabilidade da implementação, como acesso ao hardware;- Fase 2: implementação e apresentação dos resultados- Fase 3 documentação (possível publicação de artigo ou trabalho)

Page 54: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Projetos

- Datas:

- 06/11/2007: Equipe 2 e 3

- 13/11/2007: Equipe 1, 4 e 5

- 04/12/2007: Apresentação das equipes

- 11/12/2007: Entrega da documentação

Page 55: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

RTOS:

- RT Linux- KURT- RTAI- Xenomai- BlueCat- Java

Projetos

Page 56: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Equipes:

Lucas Távora de MeloGabriel MendesPedro RafaelLeandro PinheiroRicardo BrunoCésar LincolnRaphael TorresLevi LopesLila MariaIsaac TelesLius FontenelleAraceli TeixeiraFrancisco Eugênio

Projetos

Page 57: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Equipes 1: BlueCatCésar LincolnRaphael TorresLevi Lopes

Projetos

Page 58: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Equipe 2: Xenomai

Lucas Távora de MeloGabriel MacedoPedro Rafael

Projetos

Page 59: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Equipes 3: RTAI

Araceli TeixeiraFrancisco Eugênio

Projetos

Page 60: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Equipes 4: RT Linux

Lila MariaLius FontenelleRicardo Bruno

Projetos

Page 61: DETI - UFC Sistema em Tempo Real Jarbas Silveira Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas.

DETI - UFCSistema em Tempo Real Jarbas Silveira

Equipes 5: KURT

Isaac TelesLeandro Pinheiro

Projetos