1. 程式人生 > >LRU-K快取替換演算法

LRU-K快取替換演算法

【概率模型】

給定一組快取頁面N={p1,p2,p3,p4.....pn},它是我們要訪問的物件(當然是快取已命中的情形),另外再給出一組訪問序列R={r1,r2,r3....rt......},

r(t)=p(p屬於N,意思就是第t次訪問的是p頁面)。對於任意的t值,我們假定每一個快取頁面p在第(t+1)次被訪問到的概率為Pr(r(t+1))=Bp (p屬於N),依據這一概率模型,我們還可以給出另外一個更形象的定義Ip,它表示頁面p被訪問的期望間隔,Ip=1/(Bp)。這一點是很好理解的,例如若Bp=0.1,則Ip=10,也就是說頁面p每10次訪問中就有可能被訪問一次。現在的問題是如何來量化Ip,以便於計算?

【向後K距】

問:x是什麼?

t表示當前總的訪問次數,對頁面p來說,如果它在(t-x)次被訪問到了的話,那麼在t-x次與第t次(可以等於t次)之間

還必須有K-1次被訪問到。如果不能滿足這一條件,那麼p的向後K距為無窮大,否則為x。例如,當K=2的時候,只需要頁面p在第t-x次

被訪問到的同時在t-x次與第t次(可以等於t)之間還有1次被訪問到了,此時p的向後K距即為x,否則為無窮大。

通過向後K距的方式將概率Bp進行了量化,LRU-K替換演算法會淘汰掉x值最小的塊。

問:可能同時存在多個無窮大,怎麼辦?

同時存在多個x值為無窮大的情況是可能的,此時在這些同為無窮大的頁面中採用其它替換策略,如LRU。

【LRU-K演算法】