“JAVA Development Platform for Real-Time Applications in Multi-core Architectures”
Master’s thesis, Faculdade de Ciências, Universidade de Lisboa, 2009
Abstract: The increasing complexity that modern real-time systems are achieving has motivated many software developers to shift from the more traditional real-time used languages like C and ADA to real-time Java. Java in its earliest form seamed like irrelevant for the real-time community until the Real-Time Specification for Java changed that. The RTSJ standard aimed at creating an extension of the “Java Language specification” and “The Java Virtual machine” that allowed the creation of real-time applications using Java. For some time now multi-core architectures have been the answer to the shortcoming showed by single-core processors. The idea to physically have parallel processing seams attractive, but the migration from current sequential processing models to parallel processing ones is not trivial. ARINC 653 (Avionics Application Standard Software Interface) is a software specification for space and time partitioning. It defines an API for software of avionics, following the architecture of Integrated Modular Avionics. It is part of ARINC 600- Series Standards for Digital Aircraft & Flight Simulators. This document presents a view on how it is possible to make the transition from standard real-time sequential processing applications that use more traditional languages to real-time Java applications in a multi-core architecture, by using a practical example. The point will be made by taking an existing real-time C coded application that is a avionic communication software that uses the ARINC 653 standard. The idea is to make a Java version of the application and a parallel processing version and prove that not only it is possible to do so, but it brings several benefits. To support this document it will be used the research that the JEOPARD project is making along with the tools that the project is developing.
Research line(s): Timeliness and Adaptation in Dependable Systems (TADS)