An apparatus and system are disclosed for dynamically allocating main
memory among applications. The apparatus includes a cache memory module
configured to maintain a first list and a second list, each list having a
plurality of pages, and a resize module configured to resize the cache by
adaptively selecting the first or second list and subtracting pages from
or adding pages to the selected list. The system includes the apparatus
and a cache replacement module configured to adaptively distribute a
workload between the first list and the second list.