操作系統中內存管理的頁面置換算法
考慮下述頁面走向:
1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
當內存塊數量分別為3時,試問FIFO、LRU、OPT這三種置換算法的缺頁次數各是多少?
答:缺頁定義為所有內存塊最初都是空的,所以第一次用到的頁面都產生一次缺頁。
當內存塊數量為3時:
發生缺頁中斷的次數為16。
在FIFO算法中,先進入內存的頁面被先換出。當頁6要調入時,內存的狀態為4、1、5,考查頁6之前調入的頁面,分別為5、1、2、4,可見4為最先進入內存的,本次應換出,然后把頁6調入內存。
發生缺頁中斷的次數為15。
在LRU算法中,最近最少使用的頁面被先換出。當頁6要調入時,內存的狀態為5、2、1,考查頁6之前調入的頁面,分別為5、1、2,可見2為最近一段時間內使用最少的,本次應換出,然后把頁6調入內存。
發生缺頁中斷的次數為11。
在OPT算法中,在最遠的將來才被訪問的頁面被先換出。當頁6要調入時,內存的狀態為1、2、5,考查頁6后面要調入的頁面,分別為2、1、2、…,可見5為最近一段時間內使用最少的,本次應換出,然后把頁6調入內存。
OPT算法因為要知道后面請求的頁框,因此我覺得這個算法有個小小的bug,如果在某個請求中,若在該請求的頁框之后的頁框序列中至少存在一個和當前內存塊中不匹配的頁框,則按照內存塊的順序(從上往下)替換沒有出現的頁框。比如上面那個OPT例子。對于最后一個頁框請求,因為6未命中,且6之后沒有請求的序列,因此應該替換3,所以替換后的序列為6 , 2 ,1 當然,這只是針對做題而言。
posted on 2013-11-01 10:37 順其自然EVO 閱讀(482) 評論(0) 編輯 收藏 所屬分類: 設計模式學習