摘要
比較並評估四種分頁替換演算法(page replacement algorithm),以三種不同的資料型態進行比較,演算法各為 FIFO、ARB、ESC、DESC,資料型態各為Random、Locality、Most Random (MR.)。整體的排名為 (優) DESC > FIFO > ESC > ARB (差),本實驗提出了「先生生成」與 DESC 兩個概念,分別是特殊的資料生成方式和獨特的演算法,如上述 DESC 在表現上比現有的幾個演算法好,但仍有許多進步的空間。
簡介
分頁(paging) 是作業系統裡記憶體管理的一種技術,可以使電腦的主記憶體可以使用儲存在輔助記憶體中的資料。作業系統會將輔助記憶體中的資料分割成固定大小的區塊,稱為分頁(page),而分頁表 (page table) 為儲存了虛擬位址到實體位址間之對映的表。當軟體試圖訪問目前未被載入在實體記憶體中的一個分頁時,會由中央處理器的記憶體管理單元發出中斷,這個狀況稱之為分頁錯誤(page fault) ,此時就需要替這個分頁尋找一個頁框(frame) 來使用。這個在發生分頁錯誤後,尋找頁框並使用的動作就稱為分頁替換(page replacement) 。當實體記憶體還沒滿的時候,分頁會被寫回實體記憶體,並更新分頁表;反之,當實體記憶體已滿時,找出一個將被替代掉的犧牲者(victim) ,儲存犧牲者的資訊,並將新分頁替換上來,更新分頁表,分頁的調入調出之相關操作方法,即分頁替換演算法。
本次實驗會實作四種分頁替換演算法,分別為First-in-first-out algorithm (FIFO) 、Additional reference bits algorithm (ARB) 、Enhanced second-chance algorithm (ESC) 、Decent enhanced second-chance algorithm (DESC) 。DESC 是我設計的分頁替換演算法,主體以ESC 進行改編,並融入本人發想的獨特設計-—Store Bits。本次實驗的資料有三種型態,分別為Random、Locality、Most Random (MR.),MR. 亦是本人親自發想設計的,中文命名為「先生生成」,主要概念為模擬長期使用之電腦的實際狀況。
分頁替換演算法 (page replacement algorithm)
First-in-first-out algorithm (FIFO)
FIFO 的核心理念是先來者先出去,故犧牲者為先來者,也就是存在記憶體中最久的分頁。FIFO 可以使用佇列 (queue)來實現,是易實作且不差的演算法。FIFO 的特性使得佇列中的分頁得以經常被更新,而且所有分頁都有機會被替換。