This paper presents an alternative approach to memory management in the Ravenscar-Java profile, a high integrity subset of Java and the Real-Time Specification for Java (RTSJ). The profile was engineered for maximum predictability and reliability, which means that any features that incur run-time overheads and difficulties in analysis are cast out. This has led to a memory management model that is not subject to the unpredictable garbage collection mechanism of Java, and allows only one scoped memory area per thread. Each time an application thread is released, it enters its memory area created in the initialization phase. However, this model is limited in a sense that the size of each memory area must be the maximum a thread will use in each release because the size cannot be modified during the execution. This value is the worst case and pessimistic since such areas cannot be reclaimed and reused. We raise some concerns with Ravenscar-Java in terms of memory usage, resulting in motivations for an alternative approach. Our proposed memory allocation scheme, the Single Nested Scoping approach, allows dynamic yet predictable allocations of memory in each release. It is also safe in a sense that memory areas cannot be shared between application threads, and the single-parent rule of the RTSJ is no longer required. A realistic example is provided at the end as a means of illustrating the use of the single nested scoping approach.
Download Not Available

BibTex Entry

@inproceedings{Kwon2006,
 author = {J. Kwon and A.J. Wellings},
 booktitle = {Proceedings of the Fourth IEEE Workshop on Software Technologies for Future Embedded and Ubiquitous Systems 2006 (SEUS 2006)},
 editor = {Daeyoung Kim and Tomoya Enokido},
 organization = {IEEE Computer Society},
 pages = {43-48},
 title = {Motivations and Support for Single Nested Scoping in the Ravenscar-Java Profile},
 year = {2006}
}