LRU evicts the page which was last accessed the farthest into the past of any page resident in physical memory, i.e. the least-recently used page. LRU approximates OPT when the recent past is a good prediction of the future, which is often true in real programs. Variants of the LRU policy are currently used in all real operating systems. We will discuss LRU further below. For certain patterns of memory accesses, however, LRU can be quite bad. For example, the worst case for LRU is a loop which is larger than the cache size (physical memory size in this case). In this situation, LRU will miss, or page fault, on every page access. So perhaps there are alternatives which are better than LRU?