Java em tempo real - Real time Java
Java em tempo real é um termo abrangente para uma combinação de tecnologias que permite aos programadores escrever programas que atendam às demandas de sistemas de tempo real na linguagem de programação Java .
O gerenciamento de memória sofisticado do Java , suporte nativo para encadeamento e simultaneidade, segurança de tipo e relativa simplicidade criaram uma demanda para seu uso em muitos domínios. Seus recursos foram aprimorados para oferecer suporte às necessidades computacionais em tempo real:
- Java em tempo real suporta um modelo de threading baseado em prioridade estrita ,
- porque os threads Java suportam prioridades, os mecanismos de bloqueio Java suportam técnicas de prevenção de inversão de prioridade , como herança de prioridade ou protocolo de teto de prioridade , e
- Manipulação de eventos.
A proposta inicial de um padrão aberto para Java em tempo real foi apresentada por Kelvin Nilsen, que na época trabalhava como membro do corpo docente de pesquisa na Iowa State University. Um artigo de visão geral subsequente foi publicado no CACM . A resposta extremamente positiva a essas propostas iniciais resultou em uma série de reuniões patrocinadas pelo Instituto Nacional de Padrões e Tecnologia em um esforço para estabelecer um padrão aberto para Java em tempo real. O NIST foi finalmente informado de que não era o órgão apropriado para estabelecer padrões relacionados à linguagem Java, já que Java era uma marca registrada e as tecnologias eram de propriedade da Sun Microsystems. Portanto, o NIST encerrou seus esforços com a publicação de requisitos de consenso que poderiam ser considerados por esforços futuros de padronização a serem hospedados pela Sun Microsystems.
Quando a comunidade Java foi formada, o primeiro esforço foi a especificação do Java em tempo real, JSR001. Surgiram várias implementações da especificação em tempo real resultante para Java ( RTSJ ), incluindo uma implementação de referência da Timesys , WebSphere Real Time da IBM , Java SE Real-Time Systems da Sun Microsystems , PTC Perc da PTC, Inc . , ou JamaicaVM de aicas .
O RTSJ abordou os problemas críticos exigindo uma especificação mínima para o modelo de threading (e permitindo que outros modelos sejam plugados na VM) e fornecendo áreas de memória que não estão sujeitas à coleta de lixo, junto com threads que não são preemptivos por o coletor de lixo. Em vez disso, essas áreas são gerenciadas usando gerenciamento de memória baseado em região . A especificação mais recente, 2.0, suporta acesso direto ao dispositivo e coleta de lixo determinística também.
Real-Time Specification for Java
A Especificação em Tempo Real para Java (RTSJ) é um conjunto de interfaces e refinamentos comportamentais que permitem a programação de computador em tempo real na linguagem de programação Java . RTSJ 1.0 foi desenvolvido como JSR 1 sob o Java Community Process , que aprovou o novo padrão em novembro de 2001. RTSJ 2.0 está sendo desenvolvido sob JSR 282. Uma versão preliminar está disponível em JSR 282 JCP Page . Mais informações podem ser encontradas em RTSJ 2.0
Veja também
- Especificação funcional
- Javolution - Biblioteca Java compatível com RTSJ
Referências
links externos
- Problemas no projeto e implementação de Java em tempo real
- Adicionando recursos em tempo real ao Java
- Requisitos para extensões em tempo real para a plataforma Java
- Especificação em tempo real para Java 2.0 (RTSJ 2.0)
- JSR-282
- Especificação em tempo real para Java (RTSJ)
- JSR-1
- IBM WebSphere Real Time, um RTSJ SE VM totalmente compatível
- JamaicaVM e implementação RTSJ SE com coleta de lixo determinística
- PTC Perc uma VM em tempo real baseada em Java Standard Edition, mas com uma tecnologia patenteada de coleta de lixo determinística em vez de RTSJ
- Sistema de tempo real Sun Java SE
- Java em tempo real Apogee com GC em tempo real (descontinuado)
- Kit de ferramentas de implementação e teste Timesys RTSJ
- jRate (Java Real-Time Extension) uma extensão de código aberto do front-end do compilador GNU GCJ e sistema de tempo de execução que adiciona suporte para a maioria dos recursos exigidos pelo RTSJ.
- Workshop Internacional de Tecnologias Java para Sistemas Embarcados e Tempo Real (JTRES 2005) JTRES 2006 JTRES 2007 JTRES 2008 JTRES 2009 JTRES 2010 JTRES 2011 JTRES 2012 JTRES 2013 JTRES 2014 JTRES 2015
- LJRT Lund Java baseado em código aberto em tempo real
- Ovm
- Fiji VM Java em tempo real
- Java VMs em tempo real