Download
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Sistemas em Tempo Real PowerPoint Presentation
Download Presentation
Sistemas em Tempo Real

Sistemas em Tempo Real

231 Views Download Presentation
Download Presentation

Sistemas em Tempo Real

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

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

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

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

  5. LatênciaLinux: 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 Jarbas Silveira

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

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

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

  9. Aplicações Jarbas Silveira

  10. Aplicações Jarbas Silveira

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

  12. 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; Jarbas Silveira

  13. 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; Jarbas Silveira

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

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

  16. RT Linux Detalhes do Kernel do Linux Jarbas Silveira

  17. RT Linux Detalhes do kernel do RT-Linux Jarbas Silveira

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

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

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

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

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

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

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

  25. Escalonamento Modelo de escalonamento em RTLinux Jarbas Silveira

  26. 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). Jarbas Silveira

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

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

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

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

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

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

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

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

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

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

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

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

  39. Referências Bibliográficas http://www.lynuxworks.com/support/bluecat/docs/bluecat55/0851-00-bcl55_ug.pdf http://lynxos.org/support/courses/bclinux.php3 Jarbas Silveira

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

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

  42. 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 ): Jarbas Silveira

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

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

  45. Referências Bibliográficas http://hegel.ittc.ukans.edu/projects/kurt http://www.linuxdevices.com/articles/AT9514980326.html http://www.ittc.ku.edu/kurt/papers/user-manual-DRAFT.pdf Jarbas Silveira

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

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

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

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

  50. Referências Bibliográficas http://stud3.tuwien.ac.at/~e0226686/xenomai/xenomai_implementation.pdf http://www.xenomai.org/index.php/Main_Page Jarbas Silveira