void CPageCache :: AgeCache(int iHit) { for (int i = 0; i < CACHE_SIZE; i++) if (m_iCachedPages[i][PT_IDX] == iHit). // make younger m_iCachedPages[i][AGE] = 0; else m_iCachedPages[i][AGE]++; } void CPageCache :: UpdateCache(int iNewPageIdx) { int iOld = 0; for (int i = 0; i < CACHE_SIZE; i++) { // if there's room in cache,grab first space if (m_iCachedPages[i][PT_IDX] < 0) { iOld = i; break; } // search for oldest page if (m_iCachedPages[i][AGE] > m_iCachedPages[iOld][AGE]) iOld = i; } if (m_iCachedPages[iOld][PT_IDX] >= 0) PageOut(m_iCachedPages[iOld][PT_IDX]); m_iCachedPages[iOld][PT_IDX] = iNewPageIdx; m_iCachedPages[iOld][AGE] = 0; } //End of File