RTSJ - Programação para Tempo-Real através da Ampliação e Especicação da Plataforma Java
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