검색어 입력폼

[자료구조]garbage collection

등록일 2006.03.26 한글파일 한컴오피스 (hwp) | 5페이지 | 가격 700원

소개글

garbage collection을 C++ 언어로 구현

컴파일 실행환경

C++

본문내용

문제정의

garbage collection을 다음 두가지 방법 모두 C++로 구현한다.
garbage collection (쓰레기 수집)- 자바 프로그램이 더 이상 참조되지 않는 메모리를 모아 시스템에 되돌려 주는 것.- 프로그래머는 메모리에 대해서는 아무 관여하지 않는다. - 참조중인 객체를 찾는 방법참조계수 기법 (reference-counting) : 객체를 참조하는 갯수를 추적하여 참조중인 객체를 구분.- heap 안에 있는 각 객체마다 참조계수(reference-count)가 유지- 어떤 객체가 처음 생겨서 그 객체를 참조하는 변수에 배정하면 참조계수는 1이고 다른 변수가 그 객체를 참조할 때 참조계수는 1씩 증가한다. 그리고 객체를 참조하는 변수가 다른 값이 배정되면 1씩 감소한다.- 참조계수가 0인 객체 : garbage추적 기법 (tracing) : 루트 노드에서 시작하는 참조의 그래프를 추적하는 방법.




mark-sweep 방식- 주기적으로 전체 메모리를 탐색하여 garbage를 찾음.- local variable array와 stack에서 참조하는 각 객체를 `유효함` 상태로 체크- 유효하다고 체크된 각 객체들이 참조하는 다른 객체들도 역시 `유효함`⇒ mark 단계- 유효함 체크 과정이 끝나고 유효함 체크를 받지 못한 객체들은 garbage로 간주- garbage로 간주된 객체는 garbage collector에 의해 수거된다.⇒ sweep 단계- garbage collection이 진행중인 경우, garbage collector 이외의 모든 쓰레드는 중지되어야만 한다. garbage collection 하는 중에, 유효하다고 체크되지는 않았지만 실제로는 유효한 객체에 대한 참조를 다른 쓰레드가 메모리에서 옮기고 다닐 수 있기 때문에 그 객체는 garbage로 간주될 수 있기 때문이다.

참고 자료

없음
다운로드 맨위로