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.