The paging problem is defined as follows: We are given a two-level memory system, in which one level is a fast memory, called cache, capable of holding k items, and the second level is an unbounded but slow memory. At each given time step, a request to an item is issued. Given a request to an item p, a miss occurs if p is not present in the fast memory. In response to a miss, we need to choose an item q in the cache and replace it by p. The choice of q needs to be made on-line, without the knowledge of future requests. Our goal is to design a replacement strategy with a small number of misses.
We use the competitive analysis to study online randomized algorithms for paging. Our goal is to show how the concept of work functions, used previously mostly for the analysis of deterministic algorithms, can also be applied, in a systematic fashion, to the randomized case. We present two results: We first show that the competitiveness of the marking algorithm is exactly 2H(k)-1. Previously, it was known to be between H(k) and 2H(k). Our second result is a new, H(k)-competitive algorithm for paging. Our algorithm, as well as its analysis, is simpler than the known algorithm by McGeoch and Sleator. Another advantage of our method is that it can be implemented with complexity bounds independent of the number of past requests: O(k^2 log k) memory and time O(k^2) per request.