LRU簡單實現C

2021-09-01 20:11:18 字數 703 閱讀 6598

頁面置換演算法

在位址對映過程中,若在頁面中發現所要訪問的頁面不再記憶體中,則產生缺頁中斷。當發生缺頁中斷時作業系統必須在記憶體選擇乙個頁面將其移出記憶體,以便為即將調入的頁面讓出空間。而用來選擇淘汰哪一頁的規則叫做頁面置換演算法。下面是lru簡單實現:雙向鍊錶,時間複雜度o(n)

#include #include using namespace std;

typedef struct nodenode;

typedef struct lru_queue

int n; //當前個數

int max; //最大記憶體容量

node *l;

}lru_queue;

void print(lru_queue q)

coutp=p->pre;

} coutint res=-1;

if(p==null)else

}else

if(p->next!=null)

delete p;

node *tmp=new node;

tmp->num=i;

tmp->pre=null;

tmp->next=q.l;

q.l->pre=tmp;

q.l=tmp;

} return res;

}int main(void)

C 簡單實現LRU快取

最近跟同學吃飯扯淡的時候,由技術扯到薪資,又由薪資扯到他找工作時跟面試官是怎麼扯淡拿高工資的,各種技術一頓侃,總之只要啥都了解就沒問題了。談到快取的時候,我試探性的問了問 你還記得lru怎麼寫嗎,他說啥完?我說沒事。寫完這篇文章發給他 鄙視完他讓他請我再吃飯,標準的快取lru實現為雜湊表 鍊錶,這是...

LRU簡單實現

lru的設計原理就是,當資料在最近一段時間經常被訪問,那麼它在以後也會經常被訪問。這就意味著,如果經常訪問的資料,我們需要然其能夠快速命中,而不常訪問的資料,我們在容量超出限制內,要將其淘汰。主要使用linkedhashmap簡單實現lru演算法效果 public class lrucache ex...

C 簡單實現LRU快取結構

簡單了解一下 個人解釋 lru快取結構 有乙個池子,有一堆資料,池子的容納上限是k,有兩種操作 set 放資料 如果超出上限了,刪除最晚訪問的那條資料 get 訪問資料 牛客網 提交的鏈結 這裡有個要求 get set的時間複雜度都需要是o 1 推理過程 先考慮一下我們需要什麼樣的功能 訪問時候為1...