Abstract
This paper proposes a prefetch-based disk buffer management algorithm, which we call W2R (Veighingjwaiting Room). Instead of using elaborate prefetching schemes to decide which blockto prefetch and when, we simply follow the LRU-OBL (One Block Lookahead) approach and prefetchthe logical next block along with the block that is being referenced. The basic difference is that theW2R algorithm logically partitions the buffer into two rooms, namely, the Weighing Room and theWaiting Room. The referenced, hence fetched block is placed in the Weighing Room, while theprefetched logical next block is placed in the Waiting Room. By so doing, we alleviate some inherentdeficiencies of blindly prefetching the logical next block of a referenced block. Specifically, a prefetchedblock that is never used may replace a possibly valuable block and a prefetched block, thoughreferenced in the future, may replace a block that is used earlier than itself. We show through tracedriven simulation that for the workloads and the environments considered the W2R algorithm improvesthe hit rate by a maximum of 23.19 percentage points compared to the 2Q algorithm and a maximumof 10,25 percentage feints compared to the LRU-OBL algorithm.
본 논문은 선반입에 기반한 디스크 버퍼 관리 알고리즘인 $W^2R$ 알고리즘을 제안한다. $W^2R$알고리즘은 어떤 블록을, 언제 선반입할 것인가를 결정하기 위한 복잡한 선반입 정책 대신, LRU-OBL 알고리즘의 접근 방법을 따라 현재 참조되는 블록의 논리적 다음 블록을 선반입한다. LRU-OBL 알고리즘과의 기본적인 차이점은 $W^2R$ 알고리즘은 버퍼를 논리적으로 두개의 공간, 즉, Weighing Room과 Waiting Room으로 분할한다는 것이다. 참조되는 플록은 Weighing Room에 반입되고 선반입되는 논리적 다음 블록은 Waiting Room에 저장된다. 이렇게 함으로써, 무조건으로 참조되는 블록의 논리적 다음 블록을 선반입하는 LRU-OBL 정책의 단점을 해결한다. 구체적으로, 선반입되었으나 결코 참조되지 않을, 흑은 실제로 참조된다고 할지라도 교체될 블록보다 더 나중에 참조될 블록들을 위해 재 참조될 가능성이 있는 블록들 을 교체하는 문제점들을 해결한다. $W^2R$ 알고리즘은 트레이스 기반 시뮬레이션을 통해 버퍼 캐쉬 적중률을 측정한 결과 2Q 알고리즘에 비해서는 최고 23.19 %, LRU-OBL 알고리즘에 비해서는 최고 10.25 % 의 성능향상을 나타낸다.