最近最久未使用(lru)的頁面置換演算法是根據頁面調入記憶體後的使用情況做出決策的。由於無法**各頁面將來的使用情況,只能利用「最近的過去」作為「最近的將來」的近似,因此,lru置換演算法是選擇最近最久未使用的頁面予以淘汰。該演算法賦予每個頁面乙個訪問字段,用來記錄乙個頁面自上次被訪問以來所經歷的時間t。當需要淘汰乙個頁面時,選擇現有也麵中t值最大的,即最近最久未使用的頁面予以淘汰。
訪問頁面70
1203
0423
0321
2017
01物理塊177
7224
4401
11物理塊200
0000
3230
0物理塊311
3322
3227
#include#include#include#include#include#includeusing namespace std;
class optimal
optimal()
~optimal()
bool operator
bool operator>(optimal&s)
bool operator==(const optimal&s) };
istream & operator>>(istream & i, optimal&o)
ostream & operator<
void main()
else
}if (istrue == false)
(*ib).dis = ++x;}}
list::iterator s = max_element(w.begin(), w.end());
w.remove(*s);
optimal p = v.front();
v.pop_front();
l.push_back(p);
w.push_front(p);
copy(w.begin(), w.end(), ostream_iterator(cout, "\t"));
cout << endl;
}else
}} cin.get();
}
data.txt檔案
測試結果:
LRU最近最久未使用演算法
標籤 演算法 作業系統 舉報 作業系統知識庫 c 21 作者同類文章x 作業系統學習 11 作者同類文章x 最近最久未使用演算法需要引入記憶體塊時鐘,即為每個記憶體塊設定乙個計時器,用於記錄相應記憶體塊中的頁面已經存在的時間。每次置換選出所有記憶體塊時鐘中最大者作為被置換頁面,當頁面發生置換時,將其...
快取淘汰策略 最近最久未使用策略(LRU)
快取位於記憶體中,而記憶體的空間很有限,所以快取也有乙個能使用的最大空間,當快取中的資料超過這個最大空間時,就要使用快取淘汰策略淘汰一些資料,空出空間給其他資料使用。最近最久未使用策略,優先淘汰最久未使用的資料,也就是上次被訪問時間距離現在最久的資料。該策略可以保證記憶體中的資料都是熱點資料,也就是...
最近最久未使用和最少使用置換演算法的區別
選擇最近時期最久沒被使用的頁面予以淘汰。淘汰的標準是時間 選擇在最近時期使用最少的頁面作為淘汰頁。淘汰的標準是一段時間之內的使用頻率 兩種演算法都可以採用暫存器這一硬體實現。棧只適用於最近最久未使用置換演算法 該暫存器是移位暫存器,需要為每個頁面都配置乙個,用於記錄某個程序在記憶體中各頁的使用情況 ...