Title :
Real-time memory management and the Java specification
Author :
Magato, William ; Hauser, James
Author_Institution :
Dept. of Math. & Comput. Sci., Northern Kentucky Univ., Highland Heights, KY
Abstract :
Real-time systems have traditionally been developed using low-level languages such as Assembly or C. It would be desirable to have the option of using a high-level language such as Java to aid in the development of these systems. Java is an object-oriented, robust, secure programming platform that provides an enormous library of classes to make implementing common programming tasks trivial. However, most high-level languages such as Java lack the run-time performance critical to real-time systems. To address the performance issues and equip Java for real-time systems, Sun has published a specification to standardize an application interface and the implementation of a real-time Java Virtual Machine. The real-time specification for Java was published in November of 2001 but has not been accepted by industry as Sun might have hoped. The restrictive nature of the application interface may be to blame for this nonacceptance as opposed to lack of interest or need. This restrictive nature is apparent after examining the memory management model enforced by the specification which this paper explores. Low-level system programmers are accustomed to managing memory manually through global memory or by way of the malloc/free standard library functions. Java programmers are accustomed to relying on an automatic garbage collector to manage the task of reclaiming unused memory. Since an automatic garbage collector is impractical for most real-time systems, an alternative mechanism for reclaiming unused memory is required. Instead of providing the application programmer with an additional operator to reclaim memory, such as delete, the specification mandates the implementation of a collection of memory classes. This paper addresses the error prone and complex task of manual memory management within the constraints of the Sun specification and suggests modifications that might allow Java to be used as an embedded language
Keywords :
Java; high level languages; real-time systems; specification languages; storage management; Java Virtual Machine; Java specification; Sun Microsystems; application interface standardization; automatic garbage collector; embedded language; high-level language; low-level languages; malloc/free standard library functions; memory classes; object-oriented programming platform; real-time memory management; real-time specification; run-time performance; unused memory reclamation; Assembly systems; High level languages; Java; Libraries; Memory management; Object oriented programming; Programming profession; Real time systems; Robustness; Sun;
Conference_Titel :
Circuits and Systems, 2005. 48th Midwest Symposium on
Conference_Location :
Covington, KY
Print_ISBN :
0-7803-9197-7
DOI :
10.1109/MWSCAS.2005.1594463