Abstract
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%, respectively. For both schemes, overheads are kept low. The execution times in our schemes are increased only by 0.01% for static scheme and 0.35% for dynamic scheme, on average.
- Chen, G., Shetty, R., Kandemir, M., Vijaykrishnan, N., Irwin, M. J., and Wolczko, M. 2002. Tuning garbage collection for reducing memory system energy in an embedded java environment. ACM Transactions on Embedded Computing Systems 1, 1, 27--55. Google Scholar
Digital Library
- Choi, Y. and Han, H. 2006. Protected heap sharing for memory-constrained java environments. In Proceedings of the 2006 International Conference on Compilers, Architectures and Synthesis for Embedded Systems. 212--222. Google Scholar
Digital Library
- Griffin, P., Srisa-an, W., and Chang, J. M. 2005. An energy efficient garbage collector for java embedded devices. In Proceedings of the 2005 ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems. 230--238. Google Scholar
Digital Library
- Insight Software Solutions, Inc. MacroExpress® The Windows Automation Tool. Insight software solutions, Inc., http://www.macros.com.Google Scholar
- Johnes, R. and Lins, R. 1996. Garbage Collection: Algorithms for Automatic Dynamic Memory management. Wiley, New York. Google Scholar
Digital Library
- Knuth, D. E. 1997. The Art of Computer Programming Volume 1: Fundamental Algorithms. Second Edition. Addison-Wesley, Reading, MA. Google Scholar
Digital Library
- midlet.org. Wireless Java Download. midlet.org, http://midlet.org.Google Scholar
- Minoraxis, Inc. Mobile games, BLOODY GHOST. Minoraxis, Inc., http://www.minoraxis.com/mobile.html.Google Scholar
- Shaham, R., Kolodner, E. K., and Sagiv, M. 2000. On the effectiveness of gc in java. In Proceedings of the 2nd International Symposium on Memory Management. 12--17. Google Scholar
Digital Library
- Shaham, R., Kolodner, E. K., and Sagiv, M. 2001. Heap profiling for space-efficient java. In Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation. 104--113. Google Scholar
Digital Library
- Sloss, A., Symes, D., and Wright, C. 2004. ARM System Developer's Guide. Morgan Kaufmann, San Francisco, CA. Google Scholar
Digital Library
- Sun Microsystems. 2002a. Connected, Limited Device Configuration (CLDC) 1.0.4. Sun Microsystems, http://java.sun.com/j2me.Google Scholar
- Sun Microsystems. 2002b. KVM Porting Guide, CLDC, Version 1.0.4, Java 2 Platform, Micro Edition. Sun Microsystems, Santa Clara, CA.Google Scholar
- Sun Microsystems. 2002c. Mobile Information Device Profile (MIDP) v2.0. Sun Microsystems, http://java.sun.com/j2me.Google Scholar
- Tual, J. 1999. Massc: A generic architecture for multiapplication smart cards. IEEE Micro 19, 5, 52--61. Google Scholar
Digital Library
- Wilson, P. R., Johnstone, M. S., Neely, M., and Boles, D. 1995. Dynamic storage allocation: A survey and critical review. In Proceedings of International Workshop on Memory Management. Google Scholar
Digital Library
- Yang, T., Berger, E. D., Hertz, M. H., Kaplan, S. F., and Moss, J. E. B. 2004. Automatic heap sizing: Taking real memory into account. In Proceedings of the 4th International Symposium on Memory Management. 61--72. Google Scholar
Digital Library
Index Terms
Shared heap management for memory-limited java virtual machines
Recommendations
Protected heap sharing for memory-constrained java environments
CASES '06: Proceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systemsMultitasking is one of capabilities we often want to have in memory-constrained embedded systems. To support multiple address spaces within a small physical memory, a simple memory management frequently encounters the lack of available memory. Our paper ...
An efficient garbage collection for flash memory-based virtual memory systems
As more consumer electronics adopt monolithic kernels, NAND flash memory is used for the swap space in virtual memory systems. While flash memory has the advantages of low-power consumption, shock-resistance and non-volatility, it requires garbage ...
Locality and Duplication-Aware Garbage Collection for Flash Memory-Based Virtual Memory Systems
CIT '10: Proceedings of the 2010 10th IEEE International Conference on Computer and Information TechnologyAs embedded systems adopt monolithic kernels, NAND flash memory is used for swap space of virtual memory systems. While flash memory has the advantages of low-power consumption, shock-resistance and non-volatility, it requires garbage collections due to ...








Comments