Developing a real-time system in java requires awareness of memory behaviour in addition to software functional requirements. The real-time Specification for java (RTSJ) introduces a scoped memory model to avoid garba...
详细信息
Developing a real-time system in java requires awareness of memory behaviour in addition to software functional requirements. The real-time Specification for java (RTSJ) introduces a scoped memory model to avoid garbage collection delays in critical real-time applications which need to meet hard real-time constraints. Scoped memory management has certain advantages over garbage collection in terms of predictability. However, developing a real-time application using scoped memory areas (regions) may suffer from both design and runtime errors. Moreover, from a memory footprint perspective, the inability to determine precisely how many scoped memory areas should be used and which objects or threads should be allocated into these scoped memory areas makes using RTSJ problematic for developing real-time systems. In this paper, a survey of the current approaches to improve scoped memory management and new emerging challenges in RTSJ scoped memory management model are presented. Categorizing those problems and challenges provides a picture of the issues researchers have yet to investigate and to support solutions for an optimal scoped memory model. Current approaches and a set of benchmarks used to evaluate current solutions are presented and new research questions in developing realtimejava systems using a scoped memory model are proposed. (C) 2012 Elsevier B.V. All rights reserved.
The real-time Specification for java (RTSJ) extends the java memory model through immortal and scoped memory regions to reduce the timing-indeterminism caused by garbage collection. Since scoped regions can be nested,...
详细信息
ISBN:
(纸本)9780769531328
The real-time Specification for java (RTSJ) extends the java memory model through immortal and scoped memory regions to reduce the timing-indeterminism caused by garbage collection. Since scoped regions can be nested, RTSJ imposes strict assignment rules to avoid dangling pointers. These rules stabilise that an object shall not reference any object whose lifetime could be shorter than they own. Then references among two objects within different scoped regions are allowed only in one direction (i.e., from objects within region r1 to region r2, but never from r2 to r1). In order to support RTSJ component-based applications, we require controlled violations of the assignment rules to have bidirectional references among objects within two different scopes.
This paper reports on our experience with the implementation of the real-time Specification for java on the Ovm open source java virtual machine. We describe the architecture and main design decisions involved in impl...
详细信息
This paper reports on our experience with the implementation of the real-time Specification for java on the Ovm open source java virtual machine. We describe the architecture and main design decisions involved in implementing real-time java on Ovm. We present the first use of real-time java in avionics in the context of control software for a ScanEagle Unmanned Aerial Vehicle.
The proliferation of a new generation of distributed real-time embedded systems (DRE) characterized by special restrictions on its storage capacities, its available computation time, and the messages they can send thr...
详细信息
The proliferation of a new generation of distributed real-time embedded systems (DRE) characterized by special restrictions on its storage capacities, its available computation time, and the messages they can send through the network suggests a comprehensive redesign of the current distribution infrastructure in order to tune its performance. In this changing panorama, the paper concerns one of the protocols, java's Remote Method Protocol (JRMP), used nowadays to interconnect different nodes of a distributed java system, and explores the cost of integrating an improved protocol-level multiplexing strategy in the context of an end-to-end remote invocation. The new multiplexing strategy helps middleware manage more efficiently unscheduled invocations that appear at runtime generated from a certain client node, especially in cases where preallocation of resources or dimensioning for the worst-case are techniques not plausible. To this end, the paper examines an alternative based on the definition of a new subprotocol, called ConnectionLess, which offers built-in multiplexing facilities for distributed java applications. The performance of the new subprotocol is compared against the three already defined by JRMP (namely SingleOp, Stream, and Multiplex), taking into consideration parameters such as memory consumed in the java's virtual machine and end-to-end response times. Copyright (C) 2011 John Wiley & Sons, Ltd.
Component frameworks simplify development of enterprise systems and enable code reuse, but most frameworks are unpredictable and hence unsuitable for embedded or real-time systems. Similarly, java is increasingly bein...
详细信息
ISBN:
(纸本)9783540767770
Component frameworks simplify development of enterprise systems and enable code reuse, but most frameworks are unpredictable and hence unsuitable for embedded or real-time systems. Similarly, java is increasingly being used to build embedded system software because of its portability and ease of use. The real-time Specification for java (RTSJ) reduces the unpredictability in java execution times by eliminating the need for a garbage collector. However, it introduces programming complexity that makes it difficult to build non-trivial applications. To bring the advantages of java component development to DRE systems, while simultaneously simplifying the use of RTSJ, therefore, we have developed a new lightweight component model for RTSJ called Compadres. Compadres offers the following advantages: 1) Simple component definition in java that abstracts away RTSJ memory management complexity;2) System assembly from components by connecting ports that communicate through strongly-typed objects;3) The Compadres compiler that automatically generates the scoped memory architecture for components, while the component framework handles communication between the components. To validate this work, we construct a non-trivial example application using the component framework, a simple real-time CORBA implementation. We then analyze the performance and efficiency of our component example versus a non-component example, RTZen. Our measurements show that our Compadres example built with components incurs only minor time overhead as compared to a comparable hand-coded example.
Component frameworks simplify development of enterprise systems and enable code reuse, but most frameworks are unpredictable and hence unsuitable for embedded or real-time systems. Similarly, java is increasingly bein...
详细信息
ISBN:
(纸本)9783540767770
Component frameworks simplify development of enterprise systems and enable code reuse, but most frameworks are unpredictable and hence unsuitable for embedded or real-time systems. Similarly, java is increasingly being used to build embedded system software because of its portability and ease of use. The real-time Specification for java (RTSJ) reduces the unpredictability in java execution times by eliminating the need for a garbage collector. However, it introduces programming complexity that makes it difficult to build non-trivial applications. To bring the advantages of java component development to DRE systems, while simultaneously simplifying the use of RTSJ, therefore, we have developed a new lightweight component model for RTSJ called Compadres. Compadres offers the following advantages: 1) Simple component definition in java that abstracts away RTSJ memory management complexity; 2) System assembly from components by connecting ports that communicate through strongly-typed objects; 3) The Compadres compiler that automatically generates the scoped memory architecture for components, while the component framework handles communication between the components. To validate this work, we construct a non-trivial example application using the component framework, a simple real-time CORBA implementation. We then analyze the performance and efficiency of our component example versus a non-component example, RTZen. Our measurements show that our Compadres example built with components incurs only minor time overhead as compared to a comparable hand-coded example.
Automatic memory management or garbage collection greatly simplifies development of large systems. However, garbage collection is usually not used in real-time systems due to the unpredictable temporal behavior of cur...
详细信息
Automatic memory management or garbage collection greatly simplifies development of large systems. However, garbage collection is usually not used in real-time systems due to the unpredictable temporal behavior of current implementations of a garbage collector. In this paper we propose a real-time garbage collector that can be scheduled like a normal real-time thread with a deadline monotonic assigned priority. We provide an upper bound for the collector period so that the application threads will never run out of memory. Furthermore, we show that the restricted execution model of the Safety Critical java standard simplifies root scanning and reduces copying of static data. Our proposal has been implemented and evaluated in the context of the java processor JOP.
In object oriented languages, dynamic memory allocation is a fundamental concept. When using such a language in hard real-time systems, it becomes important to bound both the worst-case execution time and the worst-ca...
详细信息
ISBN:
(纸本)9783642165603
In object oriented languages, dynamic memory allocation is a fundamental concept. When using such a language in hard real-time systems, it becomes important to bound both the worst-case execution time and the worst-case memory consumption. In this paper, we present an analysis to determine the worst-case heap allocations of tasks. The analysis builds upon techniques that are well established for worst-case execution time analysis. The difference is that the cost function is not the execution time of instructions in clock cycles, but the allocation in bytes. In contrast to worst-case execution time analysis, worst-case heap allocation analysis is not processor dependent. However, the cost function depends on the object layout of the runtime system. The analysis is evaluated with several real-time benchmarks to establish the usefulness of the analysis, and to compare the memory consumption of different object layouts.
java has recently joined C and C++ as a development platform for real-time and embedded applications. java's garbage collection, while generally a useful feature, can be problematic for these applications: garbage...
详细信息
ISBN:
(纸本)9789806560840
java has recently joined C and C++ as a development platform for real-time and embedded applications. java's garbage collection, while generally a useful feature, can be problematic for these applications: garbage collection occurs at unpredictable times and its latency is typically unbounded. This can compromise necessary real-time guarantees. To overcome these limitations, the real-time for java Expert Group (RTJEG) proposed the real-time Specification for java (RTSJ), which introduced new memory models and new threads to utilize those models. One such memory model uses scoped-memory areas, which work best in the context of a NoHeapreal-timeThread (NHRT). Although much work has been done with scoped-memory areas and NHRTs, there is no system-independent analysis of their costs. In this article we present an asymptotic analysis for RTSJ scoped-memory areas and NHRTs.
暂无评论