OS頁面替換策略

2021-10-04 03:47:15 字數 888 閱讀 1039

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法 隨機法是隨機地確定替換的儲存塊。設定乙個隨機數產生器,依據所產生的隨...