記憶體管理的一種頁面置換演算法,對於在記憶體中但又不用的資料塊(記憶體塊)叫做lru,作業系統會根據哪 些資料屬於lru而將其移出記憶體而騰出空間來載入另外的資料。
lru指的是最少使用策略(least recently used)
在python中我首先是會根據輸入動態生成乙個列表,以下為生成列表的**塊:
# 這邊進行相應列表的生成
data_list =
while true:
try:
list_num = int(input("請輸入列表數字:"))
except:
break
接下來則是進行演算法的邏輯操作:
# 進行演算法實現
while true:
try:
num = int(input("請輸入數字:"))
if num in data_list:
data_list.remove(num)
data_list.insert(0, num)
else:
if len(data_list) < 5:
data_list.insert(0, num)
else:
data_list.pop(-1)
data_list.insert(0, num)
print(data_list)
except:
break
完整的**片段如下:
"""lru淘汰演算法:
1。如果此資料已經被快取到鍊錶中,遍歷得到資料節點,將其從原位置刪除,然後再插入鍊錶頭部
2。如果資料沒有再快取鍊錶中:快取未滿, 則直接加入頭部
快取已滿, 則先刪除尾節點,再將新的節點插入到鍊錶
"""# 這邊進行相應列表的生成
data_list =
while true:
try:
list_num = int(input("請輸入列表數字:"))
except:
break
# 進行演算法實現
while true:
try:
num = int(input("請輸入數字:"))
if num in data_list:
data_list.remove(num)
data_list.insert(0, num)
else:
if len(data_list) < 5:
data_list.insert(0, num)
else:
data_list.pop(-1)
data_list.insert(0, num)
print(data_list)
except:
break
python實現LRU演算法
學習mysql資料庫時,了解了一下ib buffer pool的儲存機制,使用lru演算法施行將少用的資料淘汰,儲存使用更頻繁的資料。再基於3.6版本python的字典資料型別改變,想試試新字典預設有序的話能否直接使用於lru演算法。from collections import ordereddi...
LRU演算法的實現
0 推薦 lru演算法的實現 什麼是lru演算法lru是least recently used的縮寫,即最近最少使用頁面置換演算法,是為虛擬頁式儲存管理服務的.關於作業系統的記憶體管理,如何節省利用容量不大的記憶體為最多的程序提供資源,一直是研究的重要方向.而記憶體的虛擬儲存管理,是現在最通用,最成...
LRU演算法的實現
什麼是lru演算法?lru是least recently used的縮寫,即最近最少使用頁面置換演算法,是為虛擬頁式儲存管理服務的。關於作業系統的記憶體管理,如何節省利用容量不大的記憶體為最多的程序提供資源,一直是研究的重要方向。而記憶體的虛擬儲存管理,是現在最通用,最成功的方式 在記憶體有限的情況...