78,020 research outputs found

    Safety-Critical Java for Embedded Systems

    Get PDF

    Safety-critical Java for embedded systems

    Get PDF
    This paper presents the motivation for and outcomes of an engineering research project on certifiable Java for embedded systems. The project supports the upcoming standard for safety-critical Java, which defines a subset of Java and libraries aiming for development of high criticality systems. The outcome of this project include prototype safety-critical Java implementations, a time-predictable Java processor, analysis tools for memory safety, and example applications to explore the usability of safety-critical Java for this application area. The text summarizes developments and key contributions and concludes with the lessons learned

    A Java Framework for Spatial Embedded Systems

    Get PDF
    Satellite constellations will soon play a fundamental role in global broadband and heterogeneous communication architectures. These constellations will offer ubiquitous access to interactive multimedia services. Spatial embedded systems must evolve accordingly to provide a robust real time support, including a dynamically extensible runtime environment. In other words, these systems must allow new services or features to be dynamically loaded and linked to the embedded software. Object technology answers the need for dynamically extensible systems. But can it also answer the constraints of embedded real-time systems? First experiments with Java indicate that an efficient real time scheduling of Java tasks can be implemented on top of a real-time kernel. The paper also brings solutions for an efficient and robust memory management Thus, the paper shows that it is realistic, proficient and cost effective to use object technology for designing the new generation of real-time embedded systems

    The SystemJ approach to system-level design

    Get PDF
    In this paper, we propose a new system-level design language, called SystemJ. It extends Java with synchronous reactive features present in Esterel and asynchronous constructs suitable for modelling globally asynchronous locally synchronous systems. The strength of SystemJ comes from its ability to offer the data processing and encapsulation elegance of Java, Esterel-like reactivity and synchrony, and the asynchronous de-coupling of CSP all within the Java framework. Using standard Java environments, for specification and modelling, or specialised reactive embedded processors, for high performance implementation, the SystemJ design flow is extremely versatile. With the increasing attention that Java gets in embedded systems, SystemJ comes to address data and control, software and hardware, modelling and implementation in a unified manner

    A verifiable Lightweight Escape Analysis Supporting Creational Design Patterns

    Get PDF
    This paper presents a compositional escape analysis adapted for use in resource limited embedded systems. This analysis covers the full Java language, including dynamic class loading. Thanks to the use of an effcient verififation algorithm, small embedded systems are able to check the escape analysis information of mobile code. The traditional escape analysis is also extended, taking further steps towards full Java programming support, by adding the support of common design patterns, namely aggregation and factory, in order to allow the programmer to use coding techniques that are usually somewhat inefficient on these constrained systems

    ZWT: A new cross-platform graphical interface framework for Java applications

    Get PDF
    The Java Programming Language revolutionized the world of software development in the last decades. Thanks to its portability, Java makes it possible to develop software that can run everywhere, in a truly cross-platform computing environment. Although running the same Java code anywhere works smoothly on major desktop and server platforms, this becomes much more complicated when different devices and platforms, such as smartphones or embedded systems, are taken into account. Furthermore, even if we consider devices that natively support the Java programming language, the same application may not run without re-writing part or the entire source code. This is mainly due to the existence of platform specific libraries for accessing input/output peripherals or system-specific features. In particular, the main limitation is usually associated to the different APIs that must be used for programming the Graphical User Interface (GUIs). In this paper, we present a novel framework that can be used by developers to write Java applications with portable GUIs that are truly platform-independent and thus can run on different systems such as PCs, Workstations, Android devices or mobile phones and embedded systems with Java MicroEdition (Java ME)

    Safe and Verifiable Design of Concurrent Java Programs

    Get PDF
    The design of concurrent programs has a reputation for being difficult, and thus potentially dangerous in safetycritical real-time and embedded systems. The recent appearance of Java, whilst cleaning up many insecure aspects of OO programming endemic in C++, suffers from a deceptively simple threads model that is an insecure variant of ideas that are over 25 years old [1]. Consequently, we cannot directly exploit a range of new CASE tools -- based upon modern developments in parallel computing theory -- that can verify and check the design of concurrent systems for a variety of dangers\ud such as deadlock and livelock that otherwise plague us during testing and maintenance and, more seriously, cause catastrophic failure in service. \ud Our approach uses recently developed Java class\ud libraries based on Hoare's Communicating Sequential Processes (CSP); the use of CSP greatly simplifies the design of concurrent systems and, in many cases, a parallel approach often significantly simplifies systems originally approached sequentially. New CSP CASE tools permit designs to be verified against formal specifications\ud and checked for deadlock and livelock. Below we introduce CSP and its implementation in Java and develop a small concurrent application. The formal CSP description of the application is provided, as well as that of an equivalent sequential version. FDR is used to verify the correctness of both implementations, their\ud equivalence, and their freedom from deadlock and livelock

    Towards Superinstructions for Java Interpreters

    Get PDF
    The Java Virtual Machine (JVM) is usually implemented by an interpreter or just-in-time (JIT) compiler. JITs provide the best performance, but interpreters have a number of advantages that make them attractive, especially for embedded systems. These advantages include simplicity, portability and lower memory requirements. Instruction dispatch is responsible for most of the running time of efficient interpreters, especially on pipelined processors. Superinstructions are an important optimisation to reduce the number of instruction dispatches. A superinstruction is a new Java instruction which performs the work of a common sequence of instructions. In this paper we describe work in progress on the design and implementation of a system of superinstructions for an efficient Java interpreter for connected devices and embedded systems. We describe our basic interpreter, the interpreter generator we use to automatically create optimised source code for superinstructions, and discuss Java specific issues relating to superinstructions. Our initial experimental results show that superinstructions can give large speedups on the SPECjvm98 benchmark suite
    • …
    corecore