A method for adaptively managing pages in a cache memory with a variable
workload comprises defining a cache memory; organizing the cache into
disjoint lists of pages, wherein the lists comprise lists T.sub.1,
T.sub.2, B.sub.1, and B.sub.2; maintaining a bit that is set to either
"S" or "L" for every page in the cache, which indicates whether the bit
has short-term utility or long-term utility; ensuring that each member
page of T.sub.1 is marked either as "S" or "L", wherein each member page
of T.sub.1 and B.sub.1 is marked as "S" and each member page of T.sub.2
and B.sub.2 is marked as "L"; and maintaining a temporal locality window
parameter such that pages that are re-requested within a window are of
short-term utility and pages that are re-requested outside the window are
of long-term utility, wherein the cache comprises pages that are members
of any of lists T.sub.1 and T.sub.2.