LRU和FIFO算法計算“缺頁中斷O(∩_∩)O啊

LRU和FIFO算法計算“缺頁中斷O(∩_∩)O啊
2010-04-07 00:33

今天做完了軟件設計師的操作系統部分,,,用了幾個鍾( ⊙ o ⊙ )啊!,有個問題還沒有解決...   虛擬存儲管理系統,置換算法產生的缺頁次數...就是這題 啊,不過還是不很明白...

用LRU和FIFO算法計算“缺頁中斷O(∩_∩)O啊~(+﹏+)~狂暈

標籤: 分類:我愛學習

最今爲了考軟件設計師,天天苦讀奮鬥,突然間在計算缺頁中斷時傻了眼,後來從其他的地方終於瞭解到了,其實知道了覺得很簡單。納悶到時爲什麼會傻眼呢,還自己在那考慮了很多時間。

計算用LRU和FIFO算法計算“缺頁中斷”。

在一個虛擬存儲管理系統中,假如系統分配給一個作業的內存物理塊數是3,並且此作業的頁面使用順序爲2,3,2,1,5,2,4,5,3,2,5,2,若採用FIFO和LRU置換算法,其產生的缺頁次數分別爲 (5) 和 (6) 。
(5) A.6 6) A.6
B.7 B.7
C.8 C.8
D.9 D.9
【解析】本題主要考查虛擬內存的頁面調度算法。題目中當採用FIFO時,其頁面調度過程如下:
2 3 2 1 5 2 4 5 3 2 5 2
――――――――――――――
2 2 2 2 5 5 5 5 3 3 3 3
3 3 3 3 2 2 2 2 2 5 5
1 1 1 4 4 4 4 4 2
可知缺頁次數爲9。同樣若採用LRU算法,可計算其缺頁次數爲7。

更詳細的解答:作業在3塊內存空間中的缺頁中斷次數。FIFO置換算法有這樣一個奇怪現象:內存空間塊數越多,缺頁中斷率可能相反的越高(缺頁中斷次數越高)。
問題是2塊和4塊內存的情況。現在來看下4塊的情況:
0 1 2 3 2 1 3 2 5 2 3 6 2 1 4 2
【解答】
剛開始內存並沒有這個作業,所以發生缺頁中斷一次。作業的0號頁進入內存。(1次缺頁中斷)
而頁1又不在內存,又發生缺頁中斷一次。作業頁1進入內存。(2次缺頁中斷)

頁2不在內存,發生缺頁中斷。頁2進入內存。 (3次缺頁中斷)
頁3不在內存,發生缺頁中斷。頁3進入內存。 (4次缺頁中斷)
接下來調入頁2,頁1,頁3,頁2。由於都在內存中,並不發生缺頁中斷。
頁5不在內存,發生缺頁中斷。頁5進入內存,頁5置換頁0。 (5次缺頁中斷)
接下來調入頁2,頁3。由於都在內存中,並不發生缺頁中斷。
頁6不在內存,發生缺頁中斷。頁6進入內存。頁6置換頁1。 (6次缺頁中斷)
頁2在內存,不發生缺頁中斷。
頁1不在內存(在發生第6次缺頁中斷時被置換了),發生缺頁中斷。
頁1進入內存,頁2被置換。 (7次缺頁中斷)
頁4置換頁3,頁4進入內存。 (8次缺頁中斷)
現在調入頁2,但頁2在發生第7次缺頁中斷時被置換掉了。
現在頁2進入內存,其置換頁5。(因爲這個時候是頁5最先進入內存。)(9次缺頁中斷)
總結:行數3行代表內存物理塊數是3然後從左到右依次看下去,每一列代表當前內存中的作業情況,缺頁就表示當前內存中沒有要從外面調入作業就叫缺頁

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