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

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

Módulo 5: Sistemas operacionais e Linguagens de Programação

Apresentações semelhantes


Apresentação em tema: "Módulo 5: Sistemas operacionais e Linguagens de Programação"— Transcrição da apresentação:

1 Módulo 5: Sistemas operacionais e Linguagens de Programação
Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas Silveira. 4 horas de aula : 2 x 20 minutos de exercício e 3 e 20 min de exposição. Necessário: 80 transparências. 1.o tempo: 2 horas e 15 min (135min) Transparências Programação: 30 minutos : famílias 40 minutos : arquitetura 60 minutos : Clocks Intervalo 2.o tempo: 2 horas e 15 min (135min) Programação: 20 minutos : exercícios sobre clocks 60 minutos : inicialização 20 20 minutos : exercícios sobre inicialização 30 minutos : características especiais 20 Jarbas Silveira

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

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

4 Soft e Hard real time 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. Jarbas Silveira

5 Soft e Hard real time 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 Jarbas Silveira

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

7 Real time kernels - 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) Jarbas Silveira

8 Aplicações Linux Trace Toolkit (LTT) Robótica, embedded systems. Instrumentação Eletrofisiologia Aquisição de dados Data analysers Osciloscópios 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 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 35

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 Características 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.‏ Jarbas Silveira

38 Instalação Tem que pedir o cd pelo site:
Veja a arquitetura que deseja: Jarbas Silveira

39 Referências Bibliográficas
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 Características 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 Jarbas Silveira

42 Instalação I Faça o download dos seguintes arquivos:
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 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 ; 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
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);
Características 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)‏ Jarbas Silveira

48 Faça o download dos seguintes arquivos:
Instalação I Faça o download dos seguintes arquivos: (última versão do kernel)‏ Descomprima todos os arquivos (dica, no diretório /usr/src ) e compile-os. Jarbas Silveira

49 Na configuração do kernel, tenha os seguintes cuidados:
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
Jarbas Silveira

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

52 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; Jarbas Silveira 52

53 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) Jarbas Silveira 53

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

55 RTOS: - RT Linux - KURT - RTAI - Xenomai - BlueCat - Java
Projetos RTOS: - RT Linux - KURT - RTAI - Xenomai - BlueCat - Java Jarbas Silveira 55

56 Projetos 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 Jarbas Silveira 56

57 Equipes 1: BlueCat César Lincoln Raphael Torres Levi Lopes
Projetos Equipes 1: BlueCat César Lincoln Raphael Torres Levi Lopes Jarbas Silveira 57

58 Equipe 2: Xenomai Lucas Távora de Melo Gabriel Macedo Pedro Rafael
Projetos Equipe 2: Xenomai Lucas Távora de Melo Gabriel Macedo Pedro Rafael Jarbas Silveira 58

59 Equipes 3: RTAI Araceli Teixeira Francisco Eugênio
Projetos Equipes 3: RTAI Araceli Teixeira Francisco Eugênio Jarbas Silveira 59

60 Equipes 4: RT Linux Lila Maria Lius Fontenelle Ricardo Bruno
Projetos Equipes 4: RT Linux Lila Maria Lius Fontenelle Ricardo Bruno Jarbas Silveira 60

61 Equipes 5: KURT Isaac Teles Leandro Pinheiro
Projetos Equipes 5: KURT Isaac Teles Leandro Pinheiro Jarbas Silveira 61


Carregar ppt "Módulo 5: Sistemas operacionais e Linguagens de Programação"

Apresentações semelhantes


Anúncios Google