lru opt fifo
def fifo(frames):
ram =
pagefault = 0
for i in data:
# print(i)
if i in ram:
continue #在記憶體中不替換
elif len(ram) < frames: # 仍然有空閒的區域可以放頁
else: # 頁面置換
ram.pop(0) # 彈出頭部元素
pagefault += 1
return pagefault
def opt(frames):
ram = set() # create a set as memory
flag =
pagefault = 0
for i in range(len(data)):
# print(data[i])
if(data[i] in ram):
continue
elif len(ram) < frames:
ram.add(data[i])
else:
# 找到將來最晚使用的
j = i
while(j", oldest)
ram.remove(oldest)
pageage[oldest] = 0
ram.add(page)
"更新頁面的年齡"
for i in ram: # 在記憶體中的頁面要變老
pageage[i] = pageage[i] + 1
pageage[page] = 1 # 進入記憶體則設定為1
return pagefault
Cache 替換策略
cache工作原理要求它盡量儲存最新資料,當從主存向cache傳送乙個新塊,而cache中可用位置已被佔滿時,就會產生cache替換的問題。替換問題與cache的組織方式緊密相關 對直接對映cache來說,只要把此可用位置上的主存塊換出cache即可 對全相聯和組相聯cache來說,要從若干個可用位...
資料庫緩衝區頁面替換策略
當緩中池裡沒有可用的頁面時,緩衝區管理器要使用某種策略把某些頁面的資料寫回磁碟,騰出自由頁面以便儲存後面的讀寫操作的資料,這一過程稱為頁面置換。sql server 2000使用乙個專門的程序,採用時鐘演算法進行頁面置換。它為每個緩衝區設定乙個計數器,每隔一段時間則順序掃瞄緩衝池裡的每乙個緩衝區,檢...
Cache的替換策略
根據程式區域性性規律可知 程式在執行中,總是頻繁地使用那些最近被使用過的指令和資料。這就提供了替換策略的理論依據。綜合命中率 實現的難易及速度的快慢各種因素,替換策略可有隨機法 先進先出法 最近最少使用法等。1.隨機法 rand法 隨機法是隨機地確定替換的儲存塊。設定乙個隨機數產生器,依據所產生的隨...