$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

EVM에서의 자바 동적 메모리 관리기 및 쓰레기 수집기의 구현 및 성능 분석
Implementation and Performance Analysis of the EVM's Java Dynamic Memory Manager and Garbage Collector 원문보기

정보처리학회논문지. The KIPS transactions. Part A. Part A, v.13A no.4 = no.101, 2006년, pp.295 - 304  

이상윤 (한국전자통신연구원 임베디드S) ,  원희선 (한국전자통신연구원 임베디드S) ,  최병욱 (한양대학교 정보통신대학 정보통신학부)

초록
AI-Helper 아이콘AI-Helper

자바 언어는 객체지향성, 안전성, 유연성으로 인하여 현재 가장 널리 쓰이는 프로그래밍 언어의 하나가 되었으며, 자바 가상머신이 제공해주는 메모리 관리기 및 가비지 컬렉터로 인하여 프로그래머는 메모리 관리에 관한 많은 고민이 줄어들었다. 본 논문에서는 임베디드용 자바 가상 머신에서 구현된 메모리 관리기 및 가비지 컬렉터에 대해서 제안한다. 메모리 관리기는 힘을 다양한 크기의 셀로 분할한 후 통일한 셀의 집단인 블록 단위로 관리하여 빠른 메모리 할당과 해제가 가능하다. 가비지 컬렉션 방법으로는 3-색상 기반 표기-쓸어담기 가비지 컬렉터를 기반 알고리즘으로 채택하였으며 멀티쓰레드를 지원하기 위해 새로운 4-색상 기반 표기-쓸어 담기 가비지 컬렉터를 제안한다. 제안하는 기법은 메모리 단편화가 발생하지만 객체 생성수가 많아짐에 따라 단편화율이 거의 일정함을 실험을 통해 보인다.

Abstract AI-Helper 아이콘AI-Helper

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...

주제어

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

문제 정의

  • 본 논문에서 제안하는 메모리 관리기가 생성하는 객체 수가 많아짐에 따라 단편화율이 어떻게 변화하는지 추이를 보 기 위한 실험을 수행하였다. 메모리 프로파일 정보를 보는 기능을 자바 프로그램에서 제어할 수 있도록 메모리 프로파 일 클래스 구현이 필요하다.
  • 따라서, 가비지로 간주된 셀 중에 WHITE 색상 은 메모리에서 해제해도 되지만, YELLOW로 표기된 셀은 위에서처럼 루트셋에 할당이 안 된 살아 있는 객체이므로 메 모리 해제에서 제외시켜야 한다. 본 논문에서는 YELLOW 색상 객체를 관리하는 메모리를 따로 두어 관리하도록 하였다. 객체가 힙으로부터 메모리를 할당 받으면 1차적으로 YELLOW 색상을 갖도록 하였고, 경우에 따라 적절한 시점 에 YELLOW를 WHITE로 변경해 주는 함수를 호출하도록 하였다.
  • 자바 스택은 오퍼랜드 스택으로도 활용이 된다. 본 논문에서는 쓰레기 수집기에 의한 지연 시간을 최소화하기 위해 보수적인 쓰레 기 수집 방법을 채택하였다. 보수적인 쓰레기 수집기에서는 객체의 타입 정보는 보지 않고 단지, 자바 스택의 바닥부터 4byte 씩 훑어 가기 때문에 실제로 가비지인 것들도 가비지 가 아닌 것으로 간주해 모든 가비지가 100% 회수 된다는 보장이 없다.
  • 그런데, 3-색 상 기반 표기-쓸어 담기 가비지 컬렉터슨 단일 쓰레드에서 는 아무런 문제없이 동작하지만 자바처럼 멀티쓰레드를 지 원하는 플랫폼에서는 다른 쓰레드에서 할당 받은 객체가 루 트셋으로 정의되기 이전에 가비지가 컬렉터가 동작되면 그 객체를 가비지로 취급함으로써 가비지 컬렉터 수행 후 그 쓰레드가 재가동 될 때 메모리를 잃어버리는 문제점이 있다. 본 논문에서는 이러한 문제점을 해결하기 위해 4-색상 기반 의 표기-쓸어 담기 가비지 컬렉터를 제안한다.
  • 본 논문에서는 임베디드 자바 가상 머신인 EVM에서의 메모리 관리기 및 가비지 컬렉터를 제안하였다. 본 논문에서 제안하는 메모리 관리기는 자유-리스트 방식을 채택하였다.
  • 두 번째는 가비지에 의해 사용된 힙 메모리를 회수 하고 다른 프로그램이 이를 사용할 수 있도록 하는 것이다. 본 장에서는 가비지를 판단하기 위한 루트셋과 가비지 컬렉 션의 기반이 되는 3-색상 기반 가비지 컬렉터에 대해 설명 하고 멀티쓰레드 환경에서 동작하기 위한 개선된 4-색상 기반 가비지 컬렉터를 제안한다.
  • 자바 가상머신이 가지는 중요한 모듈 중 하나인 쓰레기 수집기 (garbage collector)는 응용 프로그램이 더 이상 사용 하지 않는 메모리상의 객체를 찾아서 회수하는 역할을 담당 한다. 이 결과, 가비지 컬렉터슨 프로그래머에게 메모리 관리 에 관한 많은 고민을 줄여주었으며, 응용 프로그램이 보다 안정적으로 동작할 수 있게 해준다[3, 4], 현재, 한국전자통신 연구원에서는 임베디드 자바 가상머신인 EVM(Embedded Java Virtual Machine)을 개발하고 있으며 본 논문에서는 EVM에서 구현된 메모리 관리기 및 가비지 컬렉터에 대해서 제안한다.
  • 이런 문제를 해결하기 위해서 본 논문에서 4-색상 기반 표기-쓸어담기 가비지 컬렉터를 제안한다. 제안하는 방법은 3-색상 이외에 YELLOW라는 색상을 하나 더 둔다.

가설 설정

  • 넷째, 메 모리 단편화에 대한 고려를 해야 한다. 다섯째, 메모리 용량 이 확장 가능해야 한다.
  • 메모리 구조를 설계함에 있어 우리는 다음을 고려하였다. 첫째, 메모리 할당과 해제가 빨라야 한다. 둘째, 임베디드 시스템 성격상 메모리가 제한적이므로 임베디드 시스템에서 동작하는 프로그램들은 메모리가 작은 객체 중심으로 프로 그래밍된다.
본문요약 정보가 도움이 되었나요?

참고문헌 (16)

  1. Sun Microsystems, 'Java2 Platform, Micro Edition, Connected Device Configuration (CDC)', http://java.sun.com/products/cdc/index.jsp, 2005 

  2. T. Lindholm, F. Yellin, 'The JavaTM Virtual Machine Specification', 2nd Ed., Addison-Wesley, 1999 

  3. D. A. Barrett and B. G. Zorn, 'Using lifetime predictors to improve memory allocation performance,' In Proceedings of SIGPLAN Conference on Programming Languages Design and Implementation(PLDI), Vol.24, No.7, pp.187-196, June, 1993 

  4. S. M. Blackburn, P. Cheng, and K. S. McKinley, 'Myths and reality: The performance impact of garbage collection,' In Proceedings of International Conference on Measurement and Modeling of Computer Systems, pp.25-36, June, 2004 

  5. H. Lieberman and C. E. Hewitt, 'A real-time garbage collector based on the lifetimes of objects,' Communications of the ACM, Vol.26, No.6, pp.419-429, 1983 

  6. W. Liu, Z. Chen, and S. Tu, 'Research and analysis of garbage collection mechanism for real-time embedded java,' In Proceedings of International Conference on Computer Supported Cooperative Work in Design, pp.462-468, May, 2004 

  7. www.kaffe.org 

  8. Chia-Tien Dan Lo, Witawas Srisa-an and J. Morris Chang, 'Who is collecting your java garbage?,' IT Pro. IEEE Computer Society, pp.44-50, March April, 2003 

  9. D. Doligez, and X. Leroy, 'A Concurrent, Generational Garbage Collector for a Multithreaded Implementation of ML,' In Proc. 20th ACM Symp. Principles of Programming Languages, ACM Press, pp.113-123, 1993 

  10. http://java.sun.com 

  11. George E. Collins, 'A method for overlapping and erasure of lists,' Communications of the ACM, Vol.3, No.12, pp.655-657, December, 1960 

  12. John McCarthy, 'Recursive functions of symbolic expressions and their computations by machine,' Communications of the ACM, pp.184-195, 1960 

  13. Marvin L. Minsky, 'A Lisp garbage collector algorithm using serial secondary storage,' Technical Report Memo 58, Project MAC. MIT, Cambridge, December, 1963 

  14. ?Andrew W. Appel, 'Simple generational garbage collection and fast allocation,' Software Practice and Experience, Vol.19, No.2, pp.171-183, 1989 

  15. E. W. Dijkstra, L. Lamport, A. J. Martin, C. S. Scholten, and E. F. M. Steffens, ' On-the-fly garbage collection: An exercise in cooperation,' Communication of the ACM, Vol.21, No.11, pp.965-975, November, 1978 

  16. http://www.gnu.org/software/classpath/ 

저자의 다른 논문 :

관련 콘텐츠

오픈액세스(OA) 유형

BRONZE

출판사/학술단체 등이 한시적으로 특별한 프로모션 또는 일정기간 경과 후 접근을 허용하여, 출판사/학술단체 등의 사이트에서 이용 가능한 논문

섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로