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

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

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

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

2 DETI - UFC Sistema 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

3 DETI - UFC Sistema 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

4 DETI - UFC Sistema 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

5 DETI - UFC Sistema 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

6 DETI - UFC Sistema 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

7 DETI - UFC Sistema 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

8 DETI - UFC Sistema em Tempo Real Jarbas Silveira Linux Trace Toolkit (LTT) Robótica, embedded systems. Instrumentação Eletrofisiologia Aquisição de dados Data analysers Osciloscópios Aplicações

9 DETI - UFC Sistema em Tempo Real Jarbas Silveira Aplicações

10 DETI - UFC Sistema em Tempo Real Jarbas Silveira Aplicações

11 DETI - UFC Sistema 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.

12 DETI - UFC Sistema 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;

13 DETI - UFC Sistema 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;

14 DETI - UFC Sistema 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.

15 DETI - UFC Sistema 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.

16 DETI - UFC Sistema em Tempo Real Jarbas Silveira RT Linux Detalhes do Kernel do Linux

17 DETI - UFC Sistema em Tempo Real Jarbas Silveira RT Linux Detalhes do kernel do RT-Linux

18 DETI - UFC Sistema 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.

19 DETI - UFC Sistema 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.

20 DETI - UFC Sistema 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.

21 DETI - UFC Sistema 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.

22 DETI - UFC Sistema 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.

23 DETI - UFC Sistema 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.

24 DETI - UFC Sistema 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.

25 DETI - UFC Sistema em Tempo Real Jarbas Silveira Escalonamento Modelo de escalonamento em RTLinux

26 DETI - UFC Sistema 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).

27 DETI - UFC Sistema 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.

28 DETI - UFC Sistema 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.

29 DETI - UFC Sistema 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.

30 DETI - UFC Sistema 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.

31 DETI - UFC Sistema 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.

32 DETI - UFC Sistema 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.

33 DETI - UFC Sistema 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.

34 DETI - UFC Sistema 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.

35 DETI - UFC Sistema 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.

36 DETI - UFC Sistema 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.

37 DETI - UFC Sistema 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

38 DETI - UFC Sistema em Tempo Real Jarbas Silveira Instalação Tem que pedir o cd pelo site: cat/embedded-linux-cd.php Veja a arquitetura que deseja: support/all-linux.php

39 DETI - UFC Sistema em Tempo Real Jarbas Silveira Referências Bibliográficas cat55/ bcl55_ug.pdf

40 DETI - UFC Sistema 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.

41 DETI - UFC Sistema em Tempo Real Jarbas Silveira Patch aplicado ao kernel (ú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

42 DETI - UFC Sistema em Tempo Real Jarbas Silveira Instalação I Faça o download dos seguintes arquivos: 2.patch 2.patch 2.tar.bz2 2.tar.bz tar.bz tar.bz2 Descomprima todos os arquivos (dica, no diretório /usr/src ):

43 DETI - UFC Sistema em Tempo Real Jarbas Silveira Instalação II Aplique o patch dentro do diretório do kernel descompactado: # patch -p1 -s < /diretorio/kurt 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.

44 DETI - UFC Sistema em Tempo Real Jarbas Silveira Instalação III Compile os fontes do diretório kurt ; Não esqueça de criar a variável de ambiente KURTLINUX com o caminho do kernel ; Crie os seguintes devices: # mknod /dev/kurt c # mknod /dev/utime c # mknod /dev/dstream c 242 0

45 DETI - UFC Sistema em Tempo Real Jarbas Silveira Referências Bibliográficas tml tml DRAFT.pdf DRAFT.pdf

46 DETI - UFC Sistema 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.

47 DETI - UFC Sistema em Tempo Real Jarbas Silveira Aplicado a qualquer kernel menor ou igual à versão (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

48 DETI - UFC Sistema em Tempo Real Jarbas Silveira Instalação I Faça o download dos seguintes arquivos: rc4.tar.bz2 rc4.tar.bz2 ipipe i patch (última versão do kernel) Descomprima todos os arquivos (dica, no diretório /usr/src ) e compile-os.

49 DETI - UFC Sistema 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.

50 DETI - UFC Sistema em Tempo Real Jarbas Silveira Referências Bibliográficas i_implementation.pdf

51 DETI - UFC Sistema 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

52 DETI - UFC Sistema 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;

53 DETI - UFC Sistema 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)

54 DETI - UFC Sistema 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

55 DETI - UFC Sistema em Tempo Real Jarbas Silveira RTOS: - RT Linux - KURT - RTAI - Xenomai - BlueCat - Java Projetos

56 DETI - UFC Sistema em Tempo Real Jarbas Silveira Equipes: Lucas Távora de Melo Gabriel Mendes Pedro Rafael Leandro Pinheiro Ricardo Bruno César Lincoln Raphael Torres Levi Lopes Lila Maria Isaac Teles Lius Fontenelle Araceli Teixeira Francisco Eugênio Projetos

57 DETI - UFC Sistema em Tempo Real Jarbas Silveira Equipes 1: BlueCat César Lincoln Raphael Torres Levi Lopes Projetos

58 DETI - UFC Sistema em Tempo Real Jarbas Silveira Equipe 2: Xenomai Lucas Távora de Melo Gabriel Macedo Pedro Rafael Projetos

59 DETI - UFC Sistema em Tempo Real Jarbas Silveira Equipes 3: RTAI Araceli Teixeira Francisco Eugênio Projetos

60 DETI - UFC Sistema em Tempo Real Jarbas Silveira Equipes 4: RT Linux Lila Maria Lius Fontenelle Ricardo Bruno Projetos

61 DETI - UFC Sistema em Tempo Real Jarbas Silveira Equipes 5: KURT Isaac Teles Leandro Pinheiro Projetos


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google