Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Shared heap management for memory-limited Java virtual machines
Choi Y., Han H. ACM Transactions on Embedded Computing Systems7 (2):1-32,2008.Type:Article
Date Reviewed: Aug 15 2008

Multitasking in embedded systems without virtual memory is often done in a very simplistic way: by allocation of a fixed storage segment to a task. A more flexible strategy of heap allocation in a shared storage pool has to deal with the management of multiple fragmented heap areas, and the protection of these areas from undesirable accesses of other programs or tasks.

The authors propose a two-level memory management scheme for “sharing and protecting fragmented heaps” to “reduce a considerable amount of memory footprint,” with “almost no increase of execution time by carefully triggering garbage collection and live object compaction.” The scheme relies on the capabilities of ARM processors (Sun Microsystems). The management of fragmented heap areas uses an adapted form of Kernel-based Virtual Machine (KVM) (portable Java Virtual Machine (JVM) for small, resource-constrained devices) and modified memory allocators/garbage collectors in JVMs.

On the global level, subheaps (heap-area fragments) from a shared memory pool are allocated according to an address-ordered first-fit strategy. On the application level, a mark-sweep compact collector in one or more subheaps is used. This includes compaction across noncontiguous regions, and the release of surplus space to the global memory manager. For the selection of the sizes of heap areas, two strategies are discussed: deduction of subheap sizes from profiling information (available before program execution), and adaptive increasing/decreasing of sizes.

Experimental results are given for several benchmark examples, showing significant reduction in memory footprints and a marginal increase in execution time. Experiments for other environments/platforms may confirm the value of this approach for heap-memory usage. The performance may largely depend on hardware features, operating system characteristics, and the garbage collection parameters.

Though the discussion is rather informal, the paper contains useful information for people dealing with the intricacies of runtime systems for embedded applications.

Reviewer:  Andreas Schwald Review #: CR135957 (0906-0565)
Bookmark and Share
 
Dynamic Storage Management (D.3.3 ... )
 
 
Garbage Collection (D.4.2 ... )
 
 
Memory Management (Garbage Collection) (D.3.4 ... )
 
 
Virtual Memory (D.4.2 ... )
 
 
Processors (D.3.4 )
 
Would you recommend this review?
yes
no
Other reviews under "Dynamic Storage Management": Date
Reducing the latency of a real-time garbage collector
Johnson R. ACM Letters on Programming Languages and Systems 1(1): 46-58, 1992. Type: Article
Oct 1 1993
The detection of dangling references in C++ programs
Eyre-Todd R. ACM Letters on Programming Languages and Systems 2(1-4): 127-134, 1993. Type: Article
Mar 1 1995
On mobile Java memory consumption
Hartikainen V., Liimatainen P., Mikkonen T.  Parallel, distributed, and network-based processing (Proceedings of the 14th Euromicro International Conference on Parallel, Distributed, and Network-Based Processing (PDP’06), Feb 15-17, 2006)333-339, 2006. Type: Proceedings
Mar 1 2007
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy