頁面置換算法知識回顧和習題

知識回顧

在這裏插入圖片描述

練習

習題一

內容:

某頁式虛擬存儲管理系統中,頁面大小爲1KB。給某一進程分配的內存塊數爲3 ,並按下列地址順序引用內存單元:
3635、3632、1140、3584、2892、3640、0040、2148、1700、2145、3209、0000、1102、1100。
如果上述數字均爲十進制數,而內存中尚未裝入任何頁。

(1) 給出使用LRU算法時的缺頁次數。
(2)用流程圖的方式解釋地址變換的過程。(缺頁時只需指出產生缺頁中斷以請求調頁,具體的中斷處理流程不需畫出)

解答
(1)根據題意,頁面的引用次序爲3、3、1、3、2、3、0、2、1、2、3、0、1、1,則根據LRU算法依次訪問各頁,各內存塊中的頁面置換情況爲(加粗頁面表示剛調入內存):

訪問頁面 3 3 1 3 2 3 0 2 1 2 3 0 1 1
內存塊1 3 3 3 3 3 3 3 3 1 1 1 0 0 0
內存塊2 1 1 1 1 0 0 0 0 3 3 3 3
內存塊3 2 2 2 2 2 2 2 2 1 1
是否缺頁

故可以看出,LRU算法時的缺頁次數爲8次。


PS:解題過程中需要進行淘汰頁面的選擇時,可以通過逆向檢查此時在內存中的幾個頁面號,在逆向掃描過程中最後一個出現的頁面就是要淘汰的頁面。

例如此時分析到需要頁面0,而此時內存已滿,需要選一個頁面淘汰,進行頁面置換:那此時內存中的頁面是3、1、2,然後逆向掃描之前訪問的頁面,三個頁面當中1是最早訪問的,也是最近最久未使用的頁面,故將頁面1淘汰,將需要的頁面0調入。
在這裏插入圖片描述
頁面置換之後:
在這裏插入圖片描述
其他分析過程類似。


(2)假設沒有快表機構,其地址變換過程爲:

Created with Raphaël 2.2.0開始頁號 > 頁表長度?越界中斷訪問頁表頁在內存?修改訪問位和修改位形成物理地址地址變換結束產生缺頁中斷請求調頁yesnoyesno

習題二

題目內容:
在一個請求分頁系統中,假定分配給一個進程的物理塊數爲3,並且此進程的頁面走向爲2、3、2、1、5、2、4、5、3、2、5、2。
試用FIFO、LRU和OPT三種算法分別計算出在訪問過程所發生的缺頁次數。

解答:
FIFO算法:優先淘汰最早進入內存的頁面,可以把進入內存的頁面根據調入順序形成一個隊列,需要置換頁面時將隊列頭淘汰

訪問頁面 2 3 2 1 5 2 4 5 3 2 5 2
內存塊1 2 3 2 2
內存塊2 3 3 3
內存塊3 1
是否缺頁
2
3
1

所以把2淘汰,頁面5調入:

訪問頁面 2 3 2 1 5 2 4 5 3 2 5 2
內存塊1 2 3 2 2 5
內存塊2 3 3 3 3
內存塊3 1 1
是否缺頁
3
1
5

此時應該淘汰頁面3,調入2:

訪問頁面 2 3 2 1 5 2 4 5 3 2 5 2
內存塊1 2 3 2 2 5 5
內存塊2 3 3 3 3 2
內存塊3 1 1 1
是否缺頁
1
5
2

分析過程就是這樣,所以最後的結果:

訪問頁面 2 3 2 1 5 2 4 5 3 2 5 2
內存塊1 2 3 2 2 5 5 5 5 3 3 3 3
內存塊2 3 3 3 3 2 2 2 2 2 5 5
內存塊3 1 1 1 4 4 4 4 4 2
是否缺頁

故使用FIFO算法在訪問過程中所發生的缺頁次數爲9次。


LRU算法:

訪問頁面 2 3 2 1 5 2 4 5 3 2 5 2
內存塊1 2 2 2 2 2 2 2 2 3 3 3 3
內存塊2 3 3 3 5 5 5 5 5 5 5 5
內存塊3 1 1 1 4 4 4 2 2 2
是否缺頁

故使用LRU算法在訪問過程中所發生的缺頁次數爲7次。


OPT算法:

訪問頁面 2 3 2 1 5 2 4 5 3 2 5 2
內存塊1 2 2 2 2 2 2 4 4 4 2 2 2
內存塊2 3 3 3 3 3 3 3 3 3 3 3
內存塊3 1 5 5 5 5 5 5 5 5
是否缺頁

(倒數第三列,後面只會用到頁面5,所以既可以用4號,也可以用3號頁面進行替換,置換爲頁面2。)

故可以看出,使用OPT算法在訪問過程中所發生的缺頁次數爲6次。

PS:OPT算法淘汰那些永不使用,或者在最長時間內不再被訪問的頁面(預知未來),所以在選擇淘汰哪個頁面時,和LRU算法剛好相反,可以使用前向掃描方法,在前向掃描過程中最後一個出現的頁面就是要淘汰的頁面。

比如此時內存已滿,存放了2、3、1號頁面,要將5號頁面置換進來,淘汰頁面可以從當前頁面開始前向掃描,發現1是後面不會在訪問的(1號是永不再使用的),所以淘汰1。
在這裏插入圖片描述
替換之後,變爲:
在這裏插入圖片描述
個人理解,有誤請指正~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章