The scoped-memory feature is central to the real-time Specification for java. It allows greater control over memory management, in particular the deallocation of objects without the use of a garbage collector. To pres...
详细信息
ISBN:
(纸本)9781581136470
The scoped-memory feature is central to the real-time Specification for java. It allows greater control over memory management, in particular the deallocation of objects without the use of a garbage collector. To preserve the safety of storage references associated with java since its inception, the use of scoped memory is constrained by a set of rules in the specification. While a program's adherence to the rules can be partially checked at compile-time, undecidability issues imply that some---perhaps, many---checks may be required at run-time. Poor implementations of those run-time checks could adversely affect overall performance and predictability, the latter being a founding principle of the *** this paper we present efficient algorithms for managing scoped memories and the checks they impose on programs. Implementations and results published to date require time linear in the depth of scope nesting; our algorithms operate in constant time. We describe our approach and present experiments quantifying the gains in efficiency.
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.
Advances in operating systems and languages have brought the ideal of reasonably-bounded execution time closer to developers who need such assurances for real-time and embedded systems applications. Recently, extensio...
详细信息
ISBN:
(纸本)9781581135398
Advances in operating systems and languages have brought the ideal of reasonably-bounded execution time closer to developers who need such assurances for real-time and embedded systems applications. Recently, extensions to the java libraries and virtual machine have been proposed in an emerging standard, which provides for specification of release times, execution costs, and deadlines for a restricted class of threads. To use such features, the code executing in the thread must never reference storage that could be subject to garbage collection. The new standard provides for region-like, stack-allocated areas (scopes) of storage that are ignored by garbage collection and deallocated en masse. It now falls to the developer to adapt ordinary java code to use the real-time java scoped memory ***, it is difficult to determine manually how to map object instantiations to scopes. Moreover, if ordinary java code is modified to effect instantiations in scopes, the resulting code is difficult to read, maintain, and reuse. Static analysis can yield scopes that are correct across all program executions, but such analysis is necessarily conservative in nature. If too many objects appear to live forever under such analysis, then developers cannot rely on static analysis alone to form reasonable *** this paper we present an approach for automatically determining appropriate storage scopes for java objects, based on dynamic analysis---observed object lifetimes and object referencing behavior. While such analysis is perhaps unsafe across all program executions, our analysis can be coupled with static analysis to bracket object lifetimes, with the truth lying somewhere in between. We provide experimental results that show the memory regions discovered by our technique.
The current RTSJ (real-time Specification for java) threading model is dualized: a programmer has to decide between the high predictability offered by the region-based model and the flexibility offered by the garbage ...
详细信息
The current RTSJ (real-time Specification for java) threading model is dualized: a programmer has to decide between the high predictability offered by the region-based model and the flexibility offered by the garbage collection. So far, there is no unique type of thread which offers both the high predictability of a non-heap thread and the flexibility of a real-time thread in a single entity. Furthermore, this lack has a serious impact on the programmer who has to deal with new and sometimes non-trivial to use mechanisms, such as specific queues of objects or new types of threads, in order to avoid the priority inversion caused by the garbage collector. In order to tackle the concern properly and provide an improved and more generalized programming model, the authors propose a simple extension to the current threading model named realtimeThread++, in an attempt to introduce more flexibility in the RTSJ concurrency model. The paper describes the extension from several points of view: (i) the programmer, identifying scenarios that may benefit from it significantly;(ii) the real-time java technology perspective, identifying changes required in the current real-time virtual machine to support it;and (iii) the accumulated experience, relating empirical results obtained from a software prototype that supports the extension. Copyright (C) 2010 John Wiley & Sons, Ltd.
Using middleware infrastructures that enable communication among different nodes in a system may alleviate aspects related to management and development cost in flexible environments. In that context the article prese...
详细信息
Using middleware infrastructures that enable communication among different nodes in a system may alleviate aspects related to management and development cost in flexible environments. In that context the article presents an auction architecture with certain real-time requirements that have to be satisfied. The architecture implements a continuous double action (CDA) algorithm for a real-time middleware. The article describes the architecture (actors and goals) and the results obtained by using common-off-the-shelf real-time middleware.
We present HVMTP, a time predictable and portable java virtual machine (JVM) implementation with applications in resource-constrained, hard real-time embedded systems, which implements all levels of the safety critica...
详细信息
ISBN:
(纸本)9781450328135
We present HVMTP, a time predictable and portable java virtual machine (JVM) implementation with applications in resource-constrained, hard real-time embedded systems, which implements all levels of the safety critical java (SCJ) specification. time predictability is achieved by a combination of time-predictable algorithms, exploiting the programming model of the SCJ profile and harnessing static knowledge of the hosted SCJ system. This paper presents HVMTP in terms of its design and capabilities and demonstrates how a complete timing model of the JVM represented as a network of timed automata can be obtained using the tool TETASARTS(JVM). The timing model readily integrates with the rest of the TETASARTS tool set for temporal verification of SCJ systems. We will also show how a complete timing scheme in terms of safe worst-case execution times and best-case execution times of the java bytecodes can be derived from the model. Furthermore, we take a first look at how to support the new java 8 language feature of Lambda expressions in a SCJ context - we look in particular at how the invokedynamic bytecode can be implemented in a time-predictable way and integrated in HVMTP. Copyright (c) 2016 John Wiley & Sons, Ltd.
This paper presents an approach for dynamic reconfiguration of an embedded java system in real-time. A class loader executed as a separate thread on a multithreaded microcontroller loads an updated class concurrent to...
详细信息
ISBN:
(纸本)076952124X
This paper presents an approach for dynamic reconfiguration of an embedded java system in real-time. A class loader executed as a separate thread on a multithreaded microcontroller loads an updated class concurrent to the real-time application. At an uncritical time the application thread switches from the old to the newly updated class. A switching time of 246 clock cycles is determined by a worst-case execution time analysis and checked by measurements on the system. Although this approach is based on a real-time java system it can be adapted to other languages without extensive additional costs.
The real-time Specification for java (RTS-J) [13] is becoming a popular choice in the world of real-time and embedded programming. However, RTSJ introduces many non-intuitive rules and restrictions which prevent its w...
详细信息
ISBN:
(纸本)9783540898559
The real-time Specification for java (RTS-J) [13] is becoming a popular choice in the world of real-time and embedded programming. However, RTSJ introduces many non-intuitive rules and restrictions which prevent its wide adoption. Moreover, current state-of-the-art frameworks usually fail to alleviate the development process into higher layers of the software development life-cycle. In this paper we extend our philosophy that RTSJ concepts need to be considered at early stages of software development, postulated in our prior work [2], in a framework that provides continuum between the design and implementation process. A component model designed specially for RTSJ serves here as a cornerstone. As the first contribution of this work, we propose a development process where RTSJ concepts are manipulated independently of functional aspects. Second, we mitigate complexities of RTSJ-development by automatically generating execution infrastructure where real-time concerns are transparently managed. We thus allow developers to create systems for variously constrained real-time and embedded environments. Performed benchmarks show that the overhead of the framework is minimal in comparison to manually written object-oriented applications, while providing more extensive functionality. Finally, the framework is designed with the stress on dynamic adaptability of target systems, a property we envisage as a fundamental in an upcoming era of massively developed real-time systems.
Certainly, in hard real-time systems, it is reasonable to argue that no hard real-time threads should behave in an unpredictable way and that schedulability should be guaranteed before execution. In order to guarantee...
详细信息
ISBN:
(纸本)0769515762
Certainly, in hard real-time systems, it is reasonable to argue that no hard real-time threads should behave in an unpredictable way and that schedulability should be guaranteed before execution. In order to guarantee the timing constraints of portable code for hard real-time applications, a particular static timing analysis is necessary. In this paper, we provide a static timing analysis environment for the development of real-time applications on the java architecture. The major contributions include introducing a novel Extensible Annotations Class (XAC) format to capture portable annotations from the source level, presenting how to integrate XACs with portable Worst-Case Execution time (WCET) analysis, describing how to obtain real-time thread parameters from real-time java's specifications, and demonstrating how static timing analysis using the java architecture can be carried out from portable code.
暂无评论