題目一:在一個采用頁式虛擬存盤管理的系統中,有一用戶作業,它依次要訪問的頁面序列是1,2,3,4,1,2,5,1,2,3,4,5.假定分配給該作業的頁數為3且作業初始時未裝載頁面,那么采用FIFO調度演算法產生的缺頁中斷數為多少,采用LRU調度演算法產生的缺頁中斷數為多少?
決議:
FIFO調度演算法:先進先出原則,當記憶體中存在,則保持不變;不存在,則將右側調出,左側調入記憶體;
整體操作邏輯如下:

最核心的是綠色背景的這幾個操作,由于1,2,5存在,就不會產生缺頁中斷,
經上圖分析,FIFO演算法產生的缺頁中斷樹是9; 總訪問頁數是12,所以缺頁中斷率 = 缺頁中斷次數 / 總訪問頁數 = 9 / 12
而LRU調度演算法,采用的是最近最少使用演算法,當記憶體中存在,則把存在的調入到最前面,這樣做的好處是,對于使用比較頻繁的資料,無需重復加載,能夠提高性能;
整體操作邏輯如下:

可以看到,綠色背景處,存在次序調換的操作,這種操作,能重新激活已存在的記憶體,讓其延遲調出,
經上圖分析,FIFO演算法產生的缺頁中斷樹是10; 總訪問頁數是12,所以缺頁中斷率 = 缺頁中斷次數 / 總訪問頁數 = 10 / 12
題目二:
某虛擬存盤系統采用最近最少使用(LRU)頁面淘汰演算法,假定系統為每個作業分配4個頁面的主存空間,其中一個頁面用來存放程式,現有某作業的
程式如下:
Var A: Array[1..100,1..100] OF integer;
i,j: integer;
FOR i:=1 to 100 DO
FOR j:=1 to 100 DO
A[i,j]:=0;
設每個頁面可存放200個整數變數,變數i、j存放在程式頁中,初始時,程式及i、j均已在記憶體,其余3頁為空,若矩陣A按行序存放,那么當程式執行完后共產
生( 1)次缺頁中斷;若矩陣A按列序存放,那么當程式執行完后共產生( 2)次缺頁中斷,
1 A.50,B.100,C.5000,D.10000
2.A.50,B.100,C.5000,D.10000
解答:
此問題的前置條件是,每頁資料中行列的分布情況,按照每行100條資料,總共兩行來分布,可以存在的總數剛好是200個整數變數;

此問題考察的并非是最近最少,而是最簡單的缺頁中斷
如果按照行存盤的話,那么很明顯每200條中斷一次,總共是10000/200=50次
如果按照列存盤的話,就變成如下情況了:

再看看程式里的訪問方式:
Array[0,0]、Array[0,1],Array[0,2]、Array[0,3],...Array[0,100],每兩個數,就得中斷換頁一次,第一行就中斷50次,總共100行,供中斷50*100 = 5000次
所以答案是:1:A;2:C
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/551239.html
標籤:其他
下一篇:返回列表
