本文參考一點擊
參考二點擊
在一個請求分頁面管理中,一個程序的頁面走向爲1、2、3、4、1、2、5、1、2、3、4、5。
當內存塊數量爲3時,試問使用
(1)FIFO頁面置換算法
(2)LRU頁面置換算法
(開始時沒有裝入頁面)時的缺頁中斷次數是多少()
FIFO:
頁 4 1 2 5 1 2 3 4 5
內存 423 413 412 512 no no 532 534 no
LRU:
頁 4 1 2 5 1 2 3 4 5
內存 423 413 412 512 no no 312 342 345
(缺頁發生 也就是需要進行交換,初始裝入內存的三個頁是不發生缺頁的 所以從4開始)
上面是裝入的頁面 下面是裝入後內存的狀態 (no代表不缺頁)
FIFO是先進先出,總是淘汰最先進入內存的頁面,即選擇在內存中駐留時間最久的頁面進行淘汰。(此算法是基於內存塊的順序, 按訪問的時間先後順序鏈接成一個隊列,並設置一個指針,該指針始終指向“最老“的頁面。)
LRU 是更新最長未使用的頁面,這個算法是根據頁面值來交換的。
也就是新裝入的頁面值如果在內存塊裏面有,就會更新這個頁面的某個標記狀態(標記其多久未使用,其實就是個變量,很容易實現)
顯然一直到5都是和FIFO算法是一樣的,爲什麼呢,因爲前幾頁都是缺頁的,並沒有改變標記變量,所以就先裝入,則距今未使用時間最長,則先交換的原則啦
開始需要 1(5後面那個) 那麼內存目前狀態時 512, 1是在內存中的不發生缺頁,所以更新標記變量(標明 1剛被使用過)。
然後需要 2 內存中依然存在,則更新2的 標記變量,現在內存中仍然是 512 ,但是標記變量已經變了, 2最新,1次之,5最久(最久未使用),所以下次交換就先換 5,內存變爲 321 。現在 3最新,2次之,1最久,下次缺頁就換1。
思路就是這樣啦,由於我也是剛學,可能分析中也有錯誤,如果發現,請見諒。希望有幫助http://zhidao.baidu.com/link?url=T9qi3oc38yEsYUtDHztLSVq7F2EgSdzJ9gI-cgXkBc4MW6g8RTF88xLQM9Fq7D-r2JX0by2Xx6uLJL0xDjCO_q
在一個虛擬存儲管理系統中,假如系統分配給一個作業的內存物理塊數是3,並且此作業的頁面使用順序爲2,3,2,1,5,2,4,5,3,2,5,2,若採用FIFO和LRU置換算法,其產生的缺頁次數分別爲( )和( ) 。
答案是這樣的:
題目中當採用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。
關於這個建議你看下操作系統的相關知識.
以下給出我的算法:
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
---------------------
是否缺頁:
* * * * * * * * *
(FIFO)=9次
LRU:
當前所需:
2 3 2 1 5 2 4 5 3 2 5 2
----------------------
當前內存:
2 2 3 3 2 1 5 2 4 5 3 3
3 2 2 1 5 2 4 5 3 2 5
1 5 2 4 5 3 2 5 2
---------------------
是否缺頁:
* * * * * * *
(LRU)=7次