Browse > Article

Automatic Dynamic Memory Management Techniques for Memory Scarce Java system  

Choi, Hyung-Kyu (서울대학교 전기컴퓨터공학부)
Moon, Soo-Mook (서울대학교 전기컴퓨터공학부)
Abstract
Many embedded systems are supporting Java as their software platform via Java virtual machine. Java virtual machine manages memory automatically by providing automatic memory management, i.e. garbage collector. Because only scarce memory is available to embedded system, Java virtual machine should use small memory and manage it efficiently. This paper introduces two memory management techniques to exploit small memory in Java virtual machine which can execute multiple Java applications concurrently. First, compaction based garbage collection is introduced to overcome external fragmentation problem in presence of immovable memory area. Then garbage collector driven class unloading is introduced to reduce memory use of unnecessary loaded classes. We implemented these techniques in working embedded system and observed that they are very efficient, since more Java applications are able to be executed concurrently and memory use is also reduced with these techniques.
Keywords
Java Virtual Machine; Garbage Collector; Compaction; Class Unloading; Memory Fragmentation;
Citations & Related Records
연도 인용수 순위
  • Reference
1 Cheney, C.J., "A non-recursive list compacting algorithm," Communications of the ACM, Vol.13, No.11, pp. 677-678, 1970   DOI
2 Lindholm, T. and Yellin, F., The Java Virtual Machine Specification, 2nd Ed., Addison Wesley, 1999
3 Chung, Y. C., Moon, S.-M., Ebcioglu K. and Sahlin, D., "Reducing Sweep Time for a Nearly Empty Heap," In Proceedings of the 27th symposium on Principles of programming languages, pp. 378-389, 2000
4 Sachindran, N., Moss, J.E.B. and Berger, E.D., "MC2: High-Performance Garbage Collection for Memory-Constrained Environments," In Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 81-98, 2004
5 Cohen, J. and Nicolau, A., "Comparison of compacting algorithms for garbage collection," ACM Transactions on Programming Languages and Systems, Vol.5, No.4, pp. 532-553, 1983   DOI
6 Chen, G., Kandemir, M., Vijaykrishnan, N., Irwin, J., Mathiske, B., Wolczko, M., "Heap Compression for Memory-Constrained Java Environments," In Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp.282-301, 2003
7 KVM Porting Guide, Sun Microsystems, Inc., available as part of the CLDC download package at http://www.sun.com/software/communitysource/ j2me/cldc/downlaod.htm
8 McDowell, C.E. and Baldwin, E.A., "Unloading Java classes that contain static fields," Technical report, University of Calif. Santa Cruz, UCSC- CRL-97-18, 1997
9 Jones, R. and Lins, R., Garbage Collection: Algorithms for Automatic Dynamic Memory Management, Wiley, 1996
10 Czajkowski, G. and Daynes, L., "Multitasking without compromise: a virtual machine evolution," In Proceedings of the 16th conference on Object oriented programming, systems, languages, and applications, pp. 125-138, 2001
11 Haddon, B.K. and Waite, W.M., "A compaction procedure for variable length storage elements," the Computer Journal, Vol.10, pp. 162-165, 1967   DOI
12 Fitch, J.P. and Norman, A.C., "A note on compacting garbage collection," the Computer Journal, Vol.21, No.1, pp. 31-34, 1978   DOI
13 Jonkers, H.B.M., "A fast garbage compaction algorithm," Inf. Process. Lett., Vol.9, No.1, pp. 26-30, 1979   DOI   ScienceOn
14 Lockwood Morris, F., "A time- and space-efficient garbage compaction algorithm," Communications of the ACM, Vol.21, No.8, pp. 662-665, 1978   DOI   ScienceOn
15 Connected, Limited Device Configuration Specification, version 1.0, Java Community Process, Sun Microsystems, Inc. http://jcp.org/jsr/detail/30.jsp