Utilize este identificador para referenciar este registo: http://hdl.handle.net/10451/13858
Título: JAVA DEVELOPMENT PLATFORM FOR REAL-TIME APPLICATIONS IN MULTI-CORE ARCHITECTURES
Autor: Anjos, José Serafim Gouveia
Orientador: Schoofs, Tobias
Rufino, José Manuel de Sousa de Matos
Palavras-chave: Multi-Core
Tempo real
Processamento paralelo
Plataforma de desenvolvimento
ARINC 653
Java
Data de Defesa: 2009
Resumo: É com pouca surpresa que verificamos que o nível de complexidade dos sistemas tem vindo a aumentar expressivamente. Actualmente faz parte do quotidiano utilizar serviços, online ou não, que atingem nível de complexidades muito superiores quando comparados aos sistemas de à 20, 30 anos atrás. Sistemas/Aplicações de tempo real são quase como uma subgrupo dentro dos sistemas actuais. Sistemas de tempo real podem ser encontrados nos mais diversos locais, actualmente quase todos os sistemas embebidos conteem componentes de tempo real. Alguns exemplos de sistemas que podem utilizar tempo real são, carros, radares, braços robóticos, linhas de montagem, satélites, UAV(Unmanned Aerial Vehicle) e até aviões. Geralmente para implementar sistemas de tempo real eram utilizadas linguagens consideradas mais tradicionais, tais como C ou ADA. No entanto o nível de complexidade tem aumentado tanto que os programadores têm procurado alternativas a essas linguagens. Uma das alternativas encontradas veio de uma linguagem já existente e extremamente popular, Java. Java é uma linguagem de programação desenvolvida pela Sun Microsystems. Conta actualmente com cerca de 6,5 milhões de programadores e pode ser encontrada em virtualmente todos os segmentos de indústria. Tudo isto faz do Java uma linguagem extremamente atractiva. Devido ao seu propósito e desenho quando Java foi introduzido em 1995 parecia irrelevante no campo da computação de tempo real. Apesar de boas características introduzidas pelo Java no desenvolvimento de software simplesmente não era compatível com sistemas de tempo real. No entanto devido a popularidade que o Java ganhou ao longo dos anos, em 1998 um grupo de programados juntou-se para criar o Real-Time Specification for Java (RTSJ). O Real-Time Specification for Java é uma série de interfaces e especificações que permite que se desenvolva sistemas de tempo real na linguagem de programação Java. O objectivo é fornecer informações complementares que permitam, entre outras coisas, estender o modelo de memória Java e melhorar a semântica do escalonador de threads. O RTSJ pretende criar uma extensão da especificação da linguagem Java e da sua máquina virtual. xi As arquitecturas multi-core são uma das possíveis soluções para o processamento paralelo. Multi-core tem sido a tecnologia de ponta há já alguns anos. A grande motivação por detrás do multi-core tem sido as limitações que os processadores de um único core apresentam. Um processador multi-core é um processador que combina mais que um core independente. Cada core pode implementar optimizações tais como multithreading. Um sistema que apresente n cores vê a sua performance optimizada quando se vê perante n threads a funcionar concorrentemente. Em termos gerais cada core num processador multi-core assemelha-se a uma implementação de um processador em singlecore. A ideia de ter paralelismo a um nível físico é uma ideia extremamente atractiva. Se conseguirmos dividir uma tarefa grande em várias pequenas e executar essas pequenas tarefas em simultâneo conseguimos obter resultados extremamente satisfatórios. No entanto por muito vantajoso que seja a utilização de modelos que utilizem paralelismo, a migração dos modelos sequenciais para modelos paralelos não é de todo trivial. Nem todas as tarefas são facilmente divididas em várias pequenas tarefas, e nas tarefas paralelas existem por vezes problemas com execuções concorrentes. Para obter com sucesso uma aplicação de tempo real é necessário suporte para o sistema, para isto é necessário um RTOS (Real-Time Operating System). Um RTOS é um sistema operativo que se destina a sistemas/aplicações de tempo-real. Tal como todos os sistemas de tempo-real, um RTOS oferece uma camada entre o software e os recursos de hardware. Espera-se que uma aplicação de tempo-real a correr num RTOS tenha um comportamento que encaixe em padrões temporal pré definido. Isto significa que a quantidade de tempo que cada serviço do sistema é conhecido e restrito. Apenas o RTOS não garante que um sistema seja capaz de cumprir os prazos que a aplicação requer. É da responsabilidade de quem está a desenvolver o sistema/aplicação fazer com que esse sistema/aplicação seja capaz de cumprir os prazos pretendidos. Neste sentido o objectivo principal de um RTOS é de fornecer um ambiente de execução que consiga suportar serviços para sistemas/aplicações de tempo real. O ARINC 653 (Avionics Application Standard Software Interface) é uma especificação para o espaço e partição temporal. Define uma API de aviação que segue a xii arquitectura IMA (Integrated Modular Avionics). O sistema IMA suporta uma ou mais aplicações de aviação em apenas um módulo, um módulo é uma máquina que contem aplicações ARINC 653, e permite a execução independente dessas aplicações. Isto pode ser atingido caso o sistema forneça separação funcional, normalmente chamada de partição robusta, de aplicações de aviação. A especificação faz parte da serie ARINC 600-Series Standards for Digital Aircraft & Flight Simulator. Este documento apresenta uma visão de como é possível fazer a transição de aplicações de tempo real sequenciais que utilizem linguagens mais tradicionais para aplicações de tempo real em arquitecturas multi-core utilizando Java. Para este efeito uma aplicação já existente vai ser utilizada. A aplicação é denominada como “Airline Operational Centre” ou AOC. O “Airline Operational Centre” foi desenvolvido pela Skysoft e é utilizado como uma solução de comunicação para aviões. O seu principal objectivo passa pela distribuição de relatórios entre as estações em terra (AGP - AOC Ground Platform) e o sistema no avião. O sistema dentro do avião é constituído por dois intervenientes, o próprio avião que vai fornecendo informação relevante como temperaturas, consumo de combustível etc., e o piloto. A aplicação AOC é uma aplicação ARINC653 e como tal segue a filosofia por detrás do conceito IMA. A aplicação AOC foi totalmente implementada utilizando a linguagem de programação C, e segue modelos de processamento sequenciais. A ideia por detrás da validação da aplicação passa por fazer não só uma versão mais simplificada do AOC original, mas também uma versão em Java e outra versão que utilize processamento paralelo. Com estes novos modelos esperamos provar que é possível implementar um AOC em Java que utilize processamento paralelo e que isso trás vários benefícios. O objectivo estratégico do projecto JEOPARD é fornecer ferramentas para o desenvolvimento de sistemas previsíveis que façam uso de arquitecturas multi-core. Estas ferramentas vão melhorar a produtividade do software e a sua reciclagem através da extensão da tecnologia de processador já estabelecida em sistemas desktop para as necessidades específicas de sistemas embebidos em arquitecturas multi-core. O projecto vai activamente contribuir com as normas requeridas para o desenvolvimento de software portável neste domínio, tal como o Real-Time Specification for Java. xiii Também, o projecto JEOPARD vai desenvolver uma plataforma de desenvolvimento para aplicações de tempo real em ambientes multi-core. A interface vai ser baseada em tecnológias existentes, que incluem o the Real-Time Specification for Java (JSR 1 and JSR 282) e o Safety-Critical Java (JSR 302). Estas tecnologias actualmente fornecem uma forte base para o desenvolvimento de sistemas de tempo real que sejam complexos e altamente fiáveis, mas ainda não fornecem suporte para sistemas multi-core. Ainda mais desafiante, é o facto de que algumas destas tecnologias não referem o facto de se poder utilizar mais que um core de cada vez, o que torna impossível desenvolver aplicações à escala com o número de processadores disponíveis em sistemas multi-core actuais e futuros. Como suporte a este documento vai ser utilizada a pesquisa que o projecto JEOPARD está a fazer como também as ferramentas que o projecto está a desenvolver.
URI: http://hdl.handle.net/10451/13858
http://repositorio.ul.pt/handle/10455/3320
Aparece nas colecções:FC-DI - Master Thesis (dissertation)

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato 
Jose Serafim Anjos0809rf_29523.pdf883,8 kBAdobe PDFVer/Abrir    Acesso Restrito. Solicitar cópia ao autor!


FacebookTwitterDeliciousLinkedInDiggGoogle BookmarksMySpace
Formato BibTex MendeleyEndnote Degois 

Todos os registos no repositório estão protegidos por leis de copyright, com todos os direitos reservados.