Implementação da Especificação de Tempo Real Java para o EPOS

Propaganda
UNIVERSIDADE FEDERAL DE SANTA CATARINA
Curso de Ciências da Computação
Implementação da Especificação de Tempo Real Java
para o EPOS
ANDERSON LUIS ZAPELLO
Florianópolis, julho de 2005
ANDERSON LUIS ZAPELLO
Implementação da Especificação de Tempo Real Java
para o EPOS
Relatório informacional de Trabalho de Conclusão de Curso
Universidade Federal de Santa Catarina
Centro Tecnológico
Departamento de Informática e Estatística
Curso de Ciências da Computação
Orientador: Prof. Dr. Antônio Augusto Fröhlich
Professor responsável: Prof. Dr. Antônio Augusto Fröhlich
Florianópolis, julho de 2005
ANDERSON LUIS ZAPELLO
Implementação da Especificação de Tempo Real Java
para o EPOS
Relatório a ser entregue em 05/07/2005.
Professor responsável e orientador:
_____________________________________________________________
Prof. Dr. Antônio Augusto Fröhlich
1
Objetivo
1.1 Tema
Atualmente, estima-se que apenas 2% dos processadores produzidos sejam
empregados em computadores propriamente ditos (Personal Computers (PCs), estações de
trabalho e servidores). Assim, os 98% restantes equipariam sistemas computacionais
dedicados, de forma que, por estarem embutidos em outros equipamentos, muitos desses
processadores podem não ser percebidos. Conforme Tennehouse (2000), a maioria destes
98% baseia-se em arquiteturas de 8 ou 16 bits.1
Apesar de pouca visibilidade, esse
mercado vem, gradualmente, ganhando maior dimensão: processadores que há alguns anos
eram utilizados somente para fins industriais, militares, aeronáuticos e automobilísticos,
passaram a estar muito próximos de aparelhos presentes no cotidiano das pessoas
geladeiras, microondas e DVDs, por exemplo. Tendo em vista essa expansão, torna-se
cada vez mais necessário o desenvolvimento de pesquisas que contemplem a área de
sistemas computacionais embarcados, incluindo os desafios inerentes à criação de novas
aplicações para hardware, que apresentam restrições tais como o clock do processador, a
quantidade de memória e o gerenciamento de energia, entre outras.
Entre as indicações de plataformas para sistemas embutidos, a Java por muito tempo
foi apontada como alternativa definitiva. Porém, a complexidade tanto de sua linguagem
quanto de seu sistema de suporte de tempo de execução (JRE) dificulta a definição da Java
1
TENNENHOUSE, David. Proactive computing. In Communications of the ACM. Volume 43, 2000.
como melhor tecnologia para implementação de tais sistemas.
2
Isso porque o compilador
Java gera um código objeto, denominado bytecode, que necessariamente deve ser
executado em uma máquina virtual Java (JVM), a qual fornece uma interface entre o
hardware e o software. Com isso a SUN
empresa que desenvolveu a tecnologia - garante
que um código escrito em Java possa ser executado em qualquer plataforma sem sofrer
alterações.
Dessa forma, apesar de serem notáveis as facilidades e benefícios que a plataforma
JAVA traria para os sistemas embutidos, o fato de estar presa à máquina virtual JVM,
máquina virtual que tem como característica um grande overhead de execução
que
diminui o desempenho do aplicativo -, faz com que essa tecnologia não seja muito utilizada
em sistemas embarcados. Além disso, outro problema acarretado pelo uso de Java consiste
na falta de previsibilidade, de modo que essa plataforma não poderia ser utilizada em
aplicações de tempo-real que exigem determinismo. Na tentativa de resolver esse problema,
o Java Experts Group (JEG) propôs uma extensão da linguagem, que suportaria requisitos
temporais: a Real Time Specification for Java (RTSJ).
Conforme o exposto, consiste em um desafio a tentativa de tornar Java uma
plataforma aplicável a qualquer sistema embarcado, independente de suas características e
quantidade de recursos. Nesse contexto, este trabalho tem por objetivo a implementação de
especificação de tempo real Java para Embedded Parallel Operating Systems (EPOS), ou
seja, encontrar famílias de abstrações do EPOS que suportem os requisitos temporais de
2
FRÖHLICH. Antônio Augusto. Proposta de ênfase em Sistemas Embutidos para o Curso de
Ciências de Computação da Universidade Federal de Santa Catarina. Disponível em
http://www.lisha.ufsc.br/~guto/teaching/se/. Acesso em 20 de junho de 2005.
aplicações RT-Java. Porém, caso não seja encontrada nenhuma família que obedeça a esse
critério, tentar-se-á implementá-la, na medida do possível.
Além de ampla revisão bibliográfica, o que inclui pesquisas anteriormente
produzidas na área, este trabalho terá como base conceitos básicos referentes ao Real Time
Specification for Java (RTSJ); ao Embedded Parallel Operating Systems (O EPOS) e a
Sistemas de Tempo Real, conforme especificado, de forma bastante breve, a seguir.
Real Time Specification for Java (RTSJ)
Na especificação JAVA tradicional, o escalonamento e a sincronização não são
suficientemente precisos para programação em tempo real. Isso faz com que, em JAVA, o
gerenciamento automático de memória geralmente cause atrasos não determinísticos nas
tarefas.
A RTSJ consiste em uma Application Programming Interface (API) para a
linguagem JAVA que suporta requisitos temporais cuja exigência se dá em tempo-real,
além de manter compatibilidade entre aplicações RT-Java e Java tradicionais.
As
aplicações RT-Java necessitam de máquinas virtuais que suportem tempo real, pois as
JVMs tradicionais não são previsíveis e foram criadas para uso geral, de modo que não
apresentam suporte aos requisitos temporais necessários às aplicações RT-Java. Entre os
exemplos de JVMs tempo-real estão JamaicaVM e jRATE.
EPOS
O EPOS (Embedded Parallel Operating Systems) é um sistemas operacional
baseado nos conceitos de Sistemas Operacionais Orientados à Aplicação , usado para gerar
sistemas de aplicações específica .
3
Dessa forma, o EPOS compõe-se de famílias
resultantes de decomposições do domínio do problema. Essas famílias são divididas em
dois grupos: abstrações e mediadores.
As abstrações são componentes independentes de arquitetura que implementam o
sistema operacional. Os mediadores, por sua vez, são abstrações dependentes de alguma
arquitetura, que implementam as funcionalidades conforme as necessidades das abstrações,
oferecendo uma interface imutável para as aplicações. Assim, os mediadores são conceitoschave para a portabilidade do EPOS. Além disso, cabe ressaltar que o EPOS possui um
conjunto de Aspects , Configurable Feature and Utilities, o que acaba por fornecer aos
programadores um ambiente de desenvolvimento mais configurável e fácil de usar.
Sistemas de Tempo Real
De acordo com Wehrmeister, Sistemas de Tempo-Real correspondem a uma classe
de sistemas computacionais nos quais o correto processamento dos algoritmos
implementados não é suficiente para garantir o correto funcionamento do sistema, ou seja,
o resultado do processamento dos algoritmos do sistema devem estar prontos nos tempos
definidos pelos requisitos temporais do sistema tempo-real .3 Assim, em sistemas de tempo
real, um dos aspectos mais importantes a serem observados diz respeito a sua
previsibilidade.
3
WEHRMEISTER, Marco Aurélio Framework Orientado a Objetos para Projeto de Hardware e Software
Embarcados para Sistemas Tempo-Real. Porto Alegre: PPGC da Universidade Federal do Rio Grande do
Sul, 2005, p. 17.
Um sistema de tempo real é dito ser previsível ("predictable") no domínio lógico e no
domínio temporal quando, independentemente de variações ocorrendo à nível de hardware
(i.e. desvios do relógio), da carga e de falhas, o comportamento do sistema pode ser
antecipado, antes de sua execução .4
2
Objetivo geral
Conforme o exposto, o trabalho terá como objetivo principal a tentativa de
concretizar a proposta de tornar a plataforma Java utilizável em qualquer máquina. Para
tanto, a primeira etapa do trabalho será dedicada à implementação da Real Time
Specification for Java (RTSJ) para o Embedded Parallel Operating Systems (EPOS). Em
uma segunda etapa, pretende-se verificar se a RTSJ manteve as características
fundamentais da aplicação.
3
Objetivos específicos
Entre os objetivos específicos do trabalho, está o estudo mais aprofundado da RTSJ,
visando identificar quais requisitos temporais mostram-se necessários para as aplicações
RT-Java . Além disso, pretende-se estudar a linguagem C++, afim de melhor compreender
4
FARINES, Jean-Marie; FRAGA, Joni da Silva; OLIVEIRA, Rômulo Silva. 12ª Escola de Computação,
IME-USP, São Paulo-SP, 24 a 28 de julho de 2000, pg 5.
o funcionamento do EPOS, e utilizar tal conhecimento na implementação, caso seja
necessário.
Outro objeto de estudo para a realização do trabalho será o EPOS, pois propõeencontrar famílias de abstrações necessárias para a RTSJ e também implementar, se preciso
for, famílias que o EPS atualmente não suportaria por tratarem-se de especificações de
tempo real Java.
Por fim, o objetivo será testar o trabalho, por meio das aplicações RT-
Java implementadas para o EPOS , além de comparar seu desempenho com aplicações já
existentes, as quais rodem em máquinas virtuais que suportam RTSJ.
4
Motivações
A realização deste trabalho tem por motivação principal a possibilidade de estudar,
de forma aprofundada, sistemas de tempo real e sistemas operacionais dedicados
nesse
caso, o EPOS. Conforme citado anteriormente, processadores dedicados correspondem a
98% do montante produzido atualmente, o que comprova a extrema necessidade de tornar a
aplicação desses processadores um grande campo de pesquisa.
Outra aspecto que motivou a escolha do tema deste trabalho está no fato de a
empresa SUN ainda não ter atingido em totalidade o seu objetivo de tornar Java realmente
independente de plataforma
atingiu parcialmente, pois ainda depende da JVM. Embora
seja provável que a linguagem Java não se mostre a alternativa mais adequada nesse caso,
por seu desempenho e outros problemas sobre os quais não cabe discorrer no momento,
parece ser um grande desafio a um egresso do Curso de Ciências da Computação tentar
tornar possível qualquer aplicação RT-Java.
REFERÊNCIAS BIBLIOGRÁFICAS
FRÖHLICH, Antônio A. Application-Oriented Operating Systems. Number17. in GMD Research
Series. GMD - Forschungszentrum Informationstechnik GmbH, 2001.
FRÖHLICH, Antônio A. Proposta de ênfase em Sistemas Embutidos para o Curso de Ciências
de Computação da Universidade Federal de Santa Catarina. Disponível em
http://www.lisha.ufsc.br/~guto/teaching/se/. Acesso em 20 de junho de 2005.
WEHRMESITER, Marco Aurélio Framework Orientado a Objetos para Projeto de
Hardware e Software Embarcados para Sistemas Tempo-Real. Porto Alegre: PPGC da
Universidade Federal do Rio Grande do Sul, 2005.
FARINES, Jean-Marie; FRAGA, Joni da Silva; OLIVEIRA, Rômulo Silva. 12ª Escola de
Computação, IME-USP, São Paulo-SP, 24 a 28 de julho de 2000.
Download