Garbage collection: algorithms for automatic dynamic memory management
Garbage collection: algorithms for automatic dynamic memory management
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
On effectiveness of GC in Java
Proceedings of the 2nd international symposium on Memory management
Heap profiling for space-efficient Java
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Tuning garbage collection for reducing memory system energy in an embedded java environment
ACM Transactions on Embedded Computing Systems (TECS)
Dynamic Storage Allocation: A Survey and Critical Review
IWMM '95 Proceedings of the International Workshop on Memory Management
ARM System Developer's Guide: Designing and Optimizing System Software
ARM System Developer's Guide: Designing and Optimizing System Software
Automatic heap sizing: taking real memory into account
Proceedings of the 4th international symposium on Memory management
An energy efficient garbage collector for java embedded devices
LCTES '05 Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Protected heap sharing for memory-constrained java environments
CASES '06 Proceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems
An equation-based Heap Sizing Rule
Performance Evaluation
Hi-index | 0.00 |
One scarce resource in embedded systems is memory. Multitasking makes the lack of memory problem even worse. Most current embedded systems, which do not provide virtual memory, simply divide physical memory and evenly assign contiguous memory chunks to multiple applications. Such simple memory management can frequently cause the lack of available memory for some applications, while others are not using the full amount of assigned memory. To overcome inefficiency in current memory management, we present an efficient heap management scheme that allows multiple applications to share heap space. To reduce overall heap memory usage, applications adaptively acquire subheaps out of shared pool of memory and release surplus subheaps to shared pool. As a result, applications see noncontiguous multiple subheaps as a heap in their address space. We target Java applications to implement our heap-sharing scheme in the KVM from Sun Microsystems. To protect fragmented heap space with a limited number of regions in memory protection unit (MPU), we maintain only a limited number of subheaps. We experimentally evaluate our heap management scheme with J2ME MIDP applications. Our static and dynamic schemes reduce heap memory usage, on average, by 30 and 27&percent;, respectively. For both schemes, overheads are kept low. The execution times in our schemes are increased only by 0.01&percent; for static scheme and 0.35&percent; for dynamic scheme, on average.