Computing Reviews

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: 08/15/08

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)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy