iamabear09 / WIL

What I learned :: 공부 내용 정리 및 요약
0 stars 0 forks source link

Garbage Collection #9

Open iamabear09 opened 6 months ago

iamabear09 commented 6 months ago

Garbage Collection Study

iamabear09 commented 6 months ago

Stop the world

📌 STW 는 무엇인가...?

Garbage Collection이 진행하는 동안, Application Thread가 CPU를 점유하지 않는다. 즉, 모든 Application 동작이 Stop 된다. 따라서, Stop the world 이다.


📌 STW 는 왜 필요할까...?


1) GC의 Marking Phase

GC의 Marking 단계에서 Garbage와 Garbage가 아닌 것을 구분한다. Marking은 객체 참조 그래프를 따라가며 Marking을 하게 된다. 이후 Marking 단계가 끝나면, Garbage는 Memory에서 삭제된다.

이제 만약 STW가 존재하지 않는다고 가정하고 그렇다면 어떤 일이 발생하는지 생각해보자.

image

GC 중 객체 그래프가 변경되어서 C는 Marking 되지 않는다. 따라서 C를 참조하는 객체가 존재함에도 불구하고 C는 GC의 대상이 되어버린다.


2) Forwarding Pointer

image