본문 바로가기

카테고리 없음

Shared Pool 은 Heap을 이용해 관리된다.

WIKI 'HEAP' http://en.wikipedia.org/wiki/Heap_structure

초기 HEAP이란 단어를 아무리 ORACLE에서 찾아도 안보인다 싶었다.
책을 보니 HEAP 이란 메모리 관리 기법을 이용해... 라는 부분이 보였고 '아차' 싶었다.
그게 그건지 연결이 닿지 않았다는 것도 우습긴 하다만;


<<FROM WIKI>>

위의 TREE를 HEAP이라 한다.
PARENT는 자신이 가지고 있는 CHILD보다 항상 크다.
단 CHILD 사이에 크기에 관계는 없다.
좌측 CHILD가 클 수도 있고 우측이 클 수도 있다.
중요한건 CHILD보다 PARENT가 크다는 것이다.

이 룰이 ROOT에서 LEAF NODE까지 적용된게 HEAP이고 ROOT가 가장 큰 값을 가지는
HEAP을 MAX HEAP 이라 한다.

반대로 가장 작은 경우엔 MIN HEAP이라 한다.

위의 구조가 유리한 경우는
min 과 max 값에 대한 연산(delete나 변경)
insert
merge
경우가 있다.

여기까지는 wiki의 설명이고...
insert의 경우는 알고리즘 시간에 배웠던 듯한 기억이 ㅡ..ㅡ;

다시 본론으로 돌아와 heap을 이용해 관리된다라는건 free chunk 관리에 연관이 있는 듯하다.
free chunk는 일종의 연속적인 메모리로서 동적으로 크기변동이 이뤄진다 한다.

이는 heap의 free list를 구성하는 각각의 bucket에 해당 범위의 free chunk가 linked list로 연결되어있다.

메모리 관리를 heap을 이용해 한다 라는 말이 있고 메모리는 free chunk를 가리키므로
한 버킷에 링크된 free chunk 들이 heap구조로 관리되고 있다라는 결말이 (내 안에서만) 나온다만
과연 어떨련지...;;

현재로선 정보부족(이거 지식을 위해 올린 글 맞나?)