기억장치의 가베지 영역을 끌어 모아 프로그램이 다시 이용할 있도록 하는 작업. 프로그램에 의해 가베지가 많이 생성되어 프로그램이 이용할 수 있는 기억장치의 여분이 부족할 때 운영체제에 의해 자동으로 수행된다.
동적 기억장치 관리 시스템에서는 사용자 프로그램이 운영체제에 필요한 기억장치를 요구하여 사용할 수 있다. 그러나 그 프로그램이 그 영역을 사용하기를 끝마친 후에도 기억장소를 반납하지 않는다면 그 영역은 실제로 사용되지 않으면서 다른 프로그램도 쓸 수 없는 상태가 된다. 이런 영역을 가베지라 하는데, 많은 프로그램들이 복잡하게 돌아가다 보면 이러한 가베지가 쌓여서 프로그램들이 이용할 수 있는 기억장치 영역이 부족하게 된다.
이를 해결하기 위해서는 프로그래머들이 명시적으로 기억장소를 반납하도록 하면 되지만, 이는 상당한 부담이 되는 일이다. 따라서 이러한 작업을 시스템에서 해 주는 것이 가베지 수집이다. 대개 가베지 수집은 두 단계로 진행되는데, 첫 번째 단계는 사용자 프로그램에서 포인터로 액세스하고 있는 모든 기억장치 영역을 표시하는 일이다. 이 단계가 끝났을 때 표시되지 않은 기억장치 영역들은 가베지이므로, 시스템은 기억장소 리스트를 추적하면서 가베지를 찾아 그들을 사용가능한 기억장소 리스트에 붙인다.
이러한 가베지 수집은 대개 리스프나 프롤로그 등 인터프리터로 수행되는 리스트 처리용 시스템에서 주로 사용된다. 보통 가베지 수집은 매우 시간이 많이 걸리는 작업이므로, 잘 구성하지 않으면 시스템의 성능을 심각하게 떨어뜨리게 된다.
----------------------------------------------------------------------------------------
가비지 컬렉션...
JAVA공부를 하면서 새롭게 배운 개념이다..
이처럼 자동으로 레퍼런스가없는 객체를 자동으로 메모리에서 삭제해주니
사용자가 일일이 체크해서 메모리 해제를 해줄필요도 없고 되게 편한거같다...
엄청 메모리를 효율적으로 관리할수있을것같다...
동적 기억장치 관리 시스템에서는 사용자 프로그램이 운영체제에 필요한 기억장치를 요구하여 사용할 수 있다. 그러나 그 프로그램이 그 영역을 사용하기를 끝마친 후에도 기억장소를 반납하지 않는다면 그 영역은 실제로 사용되지 않으면서 다른 프로그램도 쓸 수 없는 상태가 된다. 이런 영역을 가베지라 하는데, 많은 프로그램들이 복잡하게 돌아가다 보면 이러한 가베지가 쌓여서 프로그램들이 이용할 수 있는 기억장치 영역이 부족하게 된다.
이를 해결하기 위해서는 프로그래머들이 명시적으로 기억장소를 반납하도록 하면 되지만, 이는 상당한 부담이 되는 일이다. 따라서 이러한 작업을 시스템에서 해 주는 것이 가베지 수집이다. 대개 가베지 수집은 두 단계로 진행되는데, 첫 번째 단계는 사용자 프로그램에서 포인터로 액세스하고 있는 모든 기억장치 영역을 표시하는 일이다. 이 단계가 끝났을 때 표시되지 않은 기억장치 영역들은 가베지이므로, 시스템은 기억장소 리스트를 추적하면서 가베지를 찾아 그들을 사용가능한 기억장소 리스트에 붙인다.
이러한 가베지 수집은 대개 리스프나 프롤로그 등 인터프리터로 수행되는 리스트 처리용 시스템에서 주로 사용된다. 보통 가베지 수집은 매우 시간이 많이 걸리는 작업이므로, 잘 구성하지 않으면 시스템의 성능을 심각하게 떨어뜨리게 된다.
----------------------------------------------------------------------------------------
가비지 컬렉션...
JAVA공부를 하면서 새롭게 배운 개념이다..
이처럼 자동으로 레퍼런스가없는 객체를 자동으로 메모리에서 삭제해주니
사용자가 일일이 체크해서 메모리 해제를 해줄필요도 없고 되게 편한거같다...
엄청 메모리를 효율적으로 관리할수있을것같다...


이올린에 북마크하기
이올린에 추천하기



