| queue방식 | 긴시간동안획득 | 오브젝트를보호 |
| 순서와무관 | 짧은순간만획득 | 공유메모리를보호 |
| queue방식 | 긴시간동안획득 | |
| 순서와무관 | 일부긴시간동안획득 | 획득방식은 래치와 유사(락과래치의중간) |
|
-- 0x035004BO위치에는 0x03D3C818값이 저장 |
-- 트랜잭션 컨트롤 영역에서 리스트의 헤드(chd)는 0x0011이고 꼬리(ctl)는 0x001c
|
{panel:title=그림 4-1 매우 작은 라이브러리 캐시 구조 | borderStyle=dashed | bgColor=#FFFFFF | titleBGColor=#F0F0F0}!1.png | vspace=4!{panel} 새로운 오브젝트를 라이브러리 캐시에 적재하기 위해, 우라클은 오브젝트가 속할 버킷을 결정하는 간단한 연산을 수행한 후, 적절한 리스트 내에 오브젝트를 연결한다. {panel:title=그림4-2 이중 링크드 리스트에 항목 추가 | borderStyle=dashed | bgColor=#FFFFFF | titleBGColor=#F0F0F0}!4-2-4.jpg | vspace=4!{panel} 오브젝트들 사이에 새로운 오브젝트가 위치하게 되면, 새로운 오브젝트의 forward,backword포인터는 각각 신규 오브젝트를 가리키게 된다. 링크드 리스트 내에 새로운 오브젝트를 추가하는 것은 기존에 존재한 두개의 오브젝트에 대한forward,backward 변경을 필요로한다. 라이브러리 캐시 내에 새로운 오브젝트를 생성하기 위한 충분한 메모리가 존재하지 않는다면, 오라클은 해시 체인으로부터 분리할 수 있는 "임의의"오브젝트를 선택하기 위해 LRU알고리즘을 사용한다. |