RTSJ - Programação para Tempo-Real através da Ampliação e Especicação da Plataforma Java

June 15, 2017 | Autor: P. Martins Cunha | Categoria: Real Time Embedded Systems, Real-Time Java
Share Embed


Descrição do Produto

Real-Time Specication for Java Anexos

RTSJ - Programação para Tempo-Real através da

Ampliação e Especicação da Plataforma Java 12

Paulo Roberto M. Cunha

1 Centro

de Ciências Exatas e Tecnologia

Curso de Tecnologia em Processamento de Dados Universidade da Amazônia

2 Programa

de Pós-Graduação em Engenharia Elétrica Engenharia de Software Universidade Federal do Pará

21.set.2005 / SEPAI-CTIC

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Pergunta: Qual tipo de problema se encaixa no domínio

de

aplicações classicadas como sistemas de Tempo-Real ?

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Sistemas Críticos e de Segurança Sistemas Médicos.

Sistemas de monitoramento e tratamento médico.

Aviação. Tecnologia Automobilística Tecnologia Aeroespacial. Tecnologia Militar. Controle de Processos.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Sistemas Críticos e de Segurança Sistemas Médicos. Aviação. Controle de navegação, piloto automático, comunicação e GPS.

Tecnologia Automobilística Tecnologia Aeroespacial. Tecnologia Militar. Controle de Processos.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Sistemas Críticos e de Segurança Sistemas Médicos. Aviação. Tecnologia Automobilística. Sistemas de controle, sistemas ABS, controle do motor.

Tecnologia Aeroespacial. Tecnologia Militar. Controle de Processos.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Sistemas Críticos e de Segurança Sistemas Médicos. Aviação. Tecnologia Automobilística. Tecnologia Aeroespacial. Navegação, controle de propulsão, comunicação, autonomia.

Tecnologia Militar. Controle de Processos.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Sistemas Críticos e de Segurança Sistemas Médicos. Aviação. Tecnologia Automobilística. Tecnologia Aeroespacial. Tecnologia Militar.

Aviônica, apoio à navegação e combate, geoposicionamento, suporte estratégico.

Controle de Processos.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Sistemas Críticos e de Segurança Sistemas Médicos. Aviação. Tecnologia Automobilística. Tecnologia Aeroespacial. Tecnologia Militar. Controle de Processos. Monitoração e controle de plantas nucleares, controle da produção química e fabril.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Pergunta: Quais as características

de um sistema

classicado como Tempo-Real ?

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Natureza dos Sistemas de Tempo-Real

Forte Interação com o Mundo Real:

Contínua

interação

com o ambiente recebendo estímulos e atuando sobre o meio que o cerca ( sistemas reativos ).

Responsividade:

Dependem fortemente do tempo de

resposta do sistema para responderem corretamente

aos

estímulos externos.

Concorrência:

O sistema

simultaneamente controla e reage

a diferentes aspectos do ambiente ( sistemas concorrentes ).

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Natureza dos Sistemas de Tempo-Real

Correção:

A correção de um programa esta também ligada

ao respeito às especicações de tempo de resposta impostos pelo sistema.

Temporalidade: O tempo para realização da computação de

alguma parte do sistema tem prazo ( deadline ) bem denidos .

Temporalidade: O desrespeito aos prazos pode implicar em

perda de vidas humanas ou destruição e perda de material e dinheiro .

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Natureza dos Sistemas de Tempo-Real

Prioridade:

Os eventos associados aos sistemas de

tempo-real respondem a eventos com prioridades diferentes. Os sistemas devem ser capazes de decidir o que é mais importante ser feito no momento, ou o que precisa de mais atenção.

Sistemas Críticos e de Segurança:

Geralmente estes

sistemas são classicados como críticos e de segurança porque uma falha em sua execução pode causar perda de vidas ou perda de muito dinheiro.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Hard Real-Time Systems

Considere um sistema de controle

em uma usina nuclear .

Se o sistema não oferecer rapidamente novas informações ao humano controlador então a informação será inútil .

Não faz sentido ser informado que a temperatura do reator estava crítica há 10 minutos atrás.

Sistemas tipo Hard Real-Time

não admitem atrasos em seu

prazos de execução. Um resultado entregue fora do tempo é tão ruim, ou pior , que a não entrega desses resultado.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Essência de Sistemas de Tempo-Real

Tempo-Real não signica rapidez !

Tempo-Real signica regularidade

e preditibilidade !

Programar para Tempo-Real signica adicionar restrições temporais às condições de corretude para a computação.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Essência de Sistemas de Tempo-Real

Preditibilidade é o requerimento mais importante para um sistema de tempo-real.

Um sistema predizível tem seu comportamento conhecido antes de ser colocado em operação.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Existem na natureza computadores de Tempo-Real!

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Computador de Tempo-Real Capacidade de sensoriamento

e

interação com o ambiente. Capacidade de enleiramento de tarefas. Capacidade de atribuir dinamicamente prioridade aos eventos em espera. Capacidade de Figura: O cérebro humano, um computador para tempo real.

processamento paralelo . Sob intensa utilização tende ao stress...

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Por Que Java?

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Por Que Java? Java foi inicialmente concebida pelos engenheiros da

Sun

para

ser uma linguagem de desenvolvimento e execução em dispositivos interligados em rede. (Ex: forno micro-ondas, controle remoto, geladeiras, torradeiras, latas-de-lixo, ratoeiras ).

Possui maior clareza

e menor complexidade

se comparada

com outras linguagens com características semelhantes. (Ex.: C++ ).

Vasta disponibilidade de literatura e mão-de-obra especializada na linguagem.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Por Que Java?

Alto nível de abstração



Produtividade .

Java provê alguma segurança computacional. Java suporta o carregamento dinâmico de novas classes. Suporte nativo à

threads

e processamento distribuído .

Foi projetada para suportar componentes e reutilização . Portabilidade é parte do projeto da linguagem e da plataforma Java desde sempre.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Processo de Compilação e Execução Java

Figura: Processo de geração de bytecode.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

O que muda na especicação Java?

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

O Grupo de Requisitos

Em 1997 foi formado e patrocinado pela NIST

1

um grupo cujo

objetivo era: Desenvolver requisitos para funcionalidades de Tempo-Real necessárias para o uso em aplicações escritas em Java e sendo executadas em várias plataformas diferentes. O grupo recebeu o nome de RTJEG

2

e teve contribuições e

sugestões de gigantes da computação como IBM, Microsoft, etc. . .

1 Instituto Nacional de Padrões e Tecnologia dos E.U.A. 2 Grupo de Requisitos para Extensões de Tempo-Real para Paulo Roberto M. Cunha

Java.

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

O Grupo de Requisitos Determinou-se alguns princípios para nortear o trabalho de especicação:

Write Once, Run Anywhere : Embora seja importante a portabilidade, a previsibilidade do sistema deve estar acima desta característica. Execução Previsível : Eleita a principal prioridade entre todos os compromissos (trade-os). Retrocompatibilidade : O RTSJ não deverá impedir que programas Java, adequadamente escritos, já existentes, e sem características de Tempo-Real, seja executado pelo RTSJ. Nenhuma Extensão Sintática : Nenhuma adição de novas keywords (palavras-reservadas) na linguagem nem extensões sintáticas.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Ampliações de Java pelo RTSJ

Gerenciamento de memória.

Habilidade de escolha de

métodos determinísticos de gerencia de memória. Valores temporais e clocks.

Precisão na descrição e controle

de ticks do clock. Objetos escalonáveis e escalonamento . Gerência por parte da aplicação da prioridade de cada item que roda no sistema. Threads de tempo-real .

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Ampliações de Java pelo RTSJ

A API para Real-Time Java esta no package "javax.realtime" Temporizadores

e gerenciamento assíncrono de eventos.

Transferência assíncrona de controle. Sincronização e compartilhamento de recurso. Acesso à memória física.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Características do Sistema Operacional para Tempo-Real

Mínimo de 28 níveis de prioridades de processo (POSIX FIFO scheduling). Prioridade de

Threads

denida pela aplicação não podem ser

alteradas pelo SO. Mínimo de 10 níveis de prioridade abaixo dos 28 já mencionados. Herança de prioridade.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Figura: Arquitetura de execução.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Características Desejáveis para o Sistema Operacional de Tempo-Real Filas de prioridade do tipo FIFO. Controle de custo de uso da CPU. Poder de Bloqueio de chamadas do OS por parte da JVM. Mapeamento de Memória. Nível de resolução de

Clocks e Timers com valores menores

que 100 milisegundos. Possibilidade de desabilitar interrupções do processador. Habilidade de solicitação ao SO para tornar serviços via interrupção em serviços agendados (schedulable).

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Restrições do RTSJ

O RTSJ só foi projetado para lidar com a execução de programas Java de tempo-real em sistemas monoprocessados.

Embora o RTSJ não tente embargar a execução

em sistemas

multiprocessados de memória compartilhada , ele não possui primitivas

de controle direto sobre alocação de threads por

processadores.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Aplicações da Tecnologia Java para Tempo Real.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Aplicações

Processador aJile aJ-100. Processador Java para aplicações de Tempo-Real.

Placa para controle de tempo-real. Java em Hardware .

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Aplicações Java para Tempo-Real

Sumô de Robôs na SunOne. Programados usando a Tecnologia Java para Tempo-Real. Vitrine para mostra de várias tecnologias Java, Figura: Sumô de robôs.

Paulo Roberto M. Cunha

entre elas RTSJ .

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Possibilidades de Uso do Real-Time Java para a Região Amazônica

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Aplicações em Nossa Região

1

Monitoramento e Controle Ambiental .

2

Software para o Projeto da TV Digital Brasileira .

3

Controle na Geração, Transmissão e Distribuição de Energia Elétrica e Energias Alternativas .

4

Controle Industrial .

5

Automação Bancária .

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Conclusões

O RTSJ é o resultado bem-sucedido

do processo de criação

de uma especicação de tempo-real para Java. Foi o primeiro processo a ser aprovado para a

Process em Janeiro 2002

Java Community

e tem sofrido revisões. A primeira

implementação comercial (JTime) ocorreu em Março de 2003 pela empresa TimeSys e a versão 1.0.1 da RTSJ foi lançada em Junho de 2005 . O RTSJ foi criada tanto para aplicações tipo Soft quanto Hard Real-Time.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Motivação para Programação em Tempo-Real RTSJ Aplicações

Conclusões

Entre suas características mais importantes esta: propriedades

scheduling apropriadas para aplicações de tempo-real, deadlines , e ferramentas que permitem às tarefas evitar atrasos decorrentes de garbage collection. de

suporte à

JTime tem sido usado por empresas como Boeing, MKS Instruments, Laboratório de Propulsão a Jato da NASA, Siemens AG, Sun Microsystems e outras.

http://www.dedicated-systems.com/vpr/layout/display/pr.asp?PRID=4184

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Agradecimentos Livros sobre o assunto Final

Agradecimentos

Prof.Dr. Rodrigo Quites Reis

- UFPa.

Este trabalho foi originalmente apresentado, com outro enfoque, em uma disciplina ministrada pelo Prof. Rodrigo no Mestrado em Engenharia Elétrica na UFPa. Muito Obrigado!

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Agradecimentos Livros sobre o assunto Final

Livros

Figura: Bollella.

Figura: Dibble.

Paulo Roberto M. Cunha

Figura: Burns.

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Agradecimentos Livros sobre o assunto Final

Livros

Figura: Laplante.

Paulo Roberto M. Cunha

Figura: Wellings.

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Agradecimentos Livros sobre o assunto Final

Referências Bibliográcas

Bollella, G.; et. al. The Real-Time Specication for Java.

Addison-Wesley, 2000. Dibble, P. C.

Real-Time Java Platform Programming - Java Series.

Prentice-Hall, 1998.

Burns, A.; Wellings, A. Real-Time Systems and Programming Languages.

Addison-Wesley, 1996.

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Agradecimentos Livros sobre o assunto Final

Referências Bibliográcas Wellings, A. Concurrent and Real-Time Programming in Java.

John Wiley & Sons, 2004. Laplante, P. A.

Real-Time Systems Design and Analysis, 3rd edition.

John Wiley & Sons, 2004. Bollella, G.

Real-Time Java: Status and Architecture.

http://www.rtj.org/rtas99/rtas.htm, 1999. Carnahan, L.; Ruark, M. Requirements for Real-Time Extensions for the Java Platform.

http://www.nist.gov/itl/div897/ctg/real-time/rt-doc/rtj-nal-draft.pdf, 1999. Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Real-Time Specication for Java Anexos

Agradecimentos Livros sobre o assunto Final

Perguntas & Respostas

Obrigado!

Paulo Roberto M. Cunha

RTSJ - Programação para Tempo-Real através da Ampliaç

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.