EVM에서의 자바 동적 메모리 관리기 및 쓰레기 수집기의 구현 및 성능 분석
Implementation and Performance Analysis of the EVM’s Java Dynamic Memory Manager and Garbage Collector
1
조회
0
다운로드
0
인용
0
참고문헌
키워드
초록
자바 언어는 객체지향성, 안전성, 유연성으로 인하여 현재 가장 널리 쓰이는 프로그래밍 언어의 하나가 되었으며, 자바 가상머신이 제공해주는 메모리 관리기 및 가비지 컬렉터로 인하여 프로그래머는 메모리 관리에 관한 많은 고민이 줄어들었다. 본 논문에서는 임베디드용 자바 가상 머신에서 구현된 메모리 관리기 및 가비지 컬렉터에 대해서 제안한다. 메모리 관리기는 힙을 다양한 크기의 셀로 분할한 후 동일한 셀의 집단인 블록 단위로 관리하여 빠른 메모리 할당과 해제가 가능하다. 가비지 컬렉션 방법으로는 3-색상 기반 표기-쓸어담기 가비지 컬렉터를 기반 알고리즘으로 채택하였으며 멀티쓰레드를 지원하기 위해 새로운 4-색상 기반 표기-쓸어 담기 가비지 컬렉터를 제안한다. 제안하는 기법은 메모리 단편화가 발생하지만 객체 생성수가 많아짐에 따라 단편화율이 거의 일정함을 실험을 통해 보인다.
Abstract
Java has been established as one of the most widely-used languages owing to its support of object-oriented concepts, safety, and flexibility. Garbage collection in the Java virtual machine is a core component that relieves application programmers of difficulties related to memory management. In this paper, we propose a memory manager and a garbage collector that is implemented on a embedded java virtual machine. The memory manager divide a heap into various-sized cells and manages it as blocks of same-sized cells. So it is possible to allocate and free memory fast. We adopted the 3-color based Mark & Sweep garbage collector as our base algorithm and we propose 4-color based Mark & Sweep garbage collector for supporting multi-threaded program. The proposed garbage collector occurs memory fragmentation but we show through a experiment that the fragmentation ratio is almost fixed according as we create objects continuously.
참고문헌 (16)
- Sun Microsystems, "Java2 Platform, Micro Edition, Connected Device Configuration(CDC)" (2005)
- T. Lindholm, "The JavaTM Virtual Machine Specification, 2nd Ed." (1999), Addison-Wesley
- D. A. Barrett, "Using lifetime predictors to improve memory allocation performance", 24(7), pp.187~196
- S. M. Blackburn, "Myths and reality: The performance impact of garbage collection", pp.25~36 (2004)
- H. Lieberman, "A real-time garbage collector based on the lifetimes of objects", 26(6), pp.419~429 (1983)
- W. Liu, "Research and analysis of garbage collection mechanism for real-time embedded java", pp.462~468 (2004)
- "www.kaffe.org"
- Chia-Tien Dan Lo, "Who is collecting your java garbage?", pp.44~50 (2003)
- D. Doligez, "A Concurrent, Generational Garbage Collector for a Multithreaded Implementation of ML", pp.113~123 (1993), ACM Press
- "http:"[DOI]
- George E. Collins, "A method for overlapping and erasure of lists Communications of the ACM", 3(12), pp.655~657
- John McCarthy, "Recursive functions of symbolic expressions and their computations by machine", pp.184~195 (1960)
- Marvin L. Minsky, "A Lisp garbage collector algorithm using serial secondary storage"
- Andrew W. Appel, "Simple generational garbage collection and fast allocation", 19(2), pp.171~183 (1989)
- E. W. Dijkstra, "-the-fly garbage collection: An exercise in cooperation", 21(11), pp.965~975
- "http:", software, pp.classpath
