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...
详细信息
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(TM) 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 specification. In 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.
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...
详细信息
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 regions. Unfortunately, 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 scopes. In 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 goal of this paper is to evaluate the real-time specification for java proposal by performing several case studies. These case studies include: an extensible general resource controller;atomic action support infra...
详细信息
The goal of this paper is to evaluate the real-time specification for java proposal by performing several case studies. These case studies include: an extensible general resource controller;atomic action support infrastructure;unbounded and imprecise computations. They have been used previously by the Ada community to evaluate the efficacy of the Ada concurrency and real-time models. Our results indicate that the real-time Specification for java is expressive enough to cope with the demands of real-time concurrent programming. If it can be implemented efficiently, it will provide an alternative to Ada 95 for programming real-time systems.
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.
In spite of the popularly of java, its slow performance and unpredictable execution characteristics are still some of the most challenging issues faced by designers for real-time applications. In the past, numerous ar...
详细信息
ISBN:
(纸本)193241553X
In spite of the popularly of java, its slow performance and unpredictable execution characteristics are still some of the most challenging issues faced by designers for real-time applications. In the past, numerous architectural enhancements have been investigated to enhance performance and increase predictability. In this paper, dedicated hardware based enhancements that can complement existing design solutions are presented. To achieve high-performance while maintaining simplicity of design, a nested state controller is used for modelling java instructions. This approach enables ahead of synthesis resource sharing and simplified reuse of functional elements. A hardware based automatic memory management sub-system is also presented that provides virtual pointer based memory access for memory allocations. Along with fixed cycle allocation and fast automatic resizing of memory, the memory controller provides predictable management functions. The paper describes a simple system targeted to the Virtex II Pro FPGA.
This paper presents a real-time java hardware and software system for use in embedded applications. The system includes a multithreaded java microcontroller an adapted java Virtual Machine (JVM) and an extended Applic...
详细信息
ISBN:
(纸本)0769515584
This paper presents a real-time java hardware and software system for use in embedded applications. The system includes a multithreaded java microcontroller an adapted java Virtual Machine (JVM) and an extended Application Programming Interface (API). The microcontroller core is designed with a multithreaded pipeline and hardware support for real-time scheduling algorithms. The java Virtual Machine consists of trap routines for complex java byte-codes, a real-time garbage collection and a class loader for creating real-time data structures. On a higher level, the Application Programming Interface provides easy real-time thread management and access to hardware components like serial interfaces and timer/counter units.
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.
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.
java平台具有Write Once, Run Anywhere特性,在解决耗用记忆体空间及执行效率缓慢的问题後,目前已渐受嵌入式系统市场所接受。但有监於嵌入式系统与即时系统市场的极高交集,因此如何在java平台中加入real-time程式的支援,一直有许...
详细信息
java平台具有Write Once, Run Anywhere特性,在解决耗用记忆体空间及执行效率缓慢的问题後,目前已渐受嵌入式系统市场所接受。但有监於嵌入式系统与即时系统市场的极高交集,因此如何在java平台中加入real-time程式的支援,一直有许多学者与商业公司进行相关的研究。
本文中将介绍我们对目前real-time java规范-RTSJ(real-time Specification for java)中各项新增机制的了解,并介绍我们如何遵照其要求,设计实作出与之相容的real-time java执行环境。
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.
暂无评论