某虚拟存储系统采用最近最少使用(LRU)页面淘汰算法,假定系统为每个作业分配4个页面的主存空间--软考系统架构设计师--不会做题?“猿”来绘个图解决吧
軟考系統(tǒng)架構(gòu)設(shè)計師考這樣的題,大家可能覺得有問題?
我對這個題的看法,
1. 首先作為一個架構(gòu)師,需要了解操作系統(tǒng)的基礎(chǔ)知識吧,這個絕對是沒爭議的,作為程序員必須要熟悉的基礎(chǔ),要了一定的層次,如果還不懂操作系統(tǒng)的知識,那還算是合格的架構(gòu)師?
2. 這個題同樣考察了一定的思維邏輯在里面,屬于比較綜合的題型,包括對一維數(shù)組、二維數(shù)組的理解,操作系統(tǒng)缺頁中斷的理解,高級語言嵌套循環(huán)的寫法,等等,涉及到的知識比較廣,又比較基礎(chǔ),所以是對一個人IT的基礎(chǔ)知識的考察。
如果基礎(chǔ)都不懂?架構(gòu)師? 別鬧了,后面還有排隊的,你先靠后...
某虛擬存儲系統(tǒng)采用最近最少使用(LRU)頁面淘汰算法,假定系統(tǒng)為每個作業(yè)分配4個頁面的主存空間,其中一個頁面用來存放程序。現(xiàn)有某作業(yè)的
程序如下:
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;
設(shè)每個頁面可存放200個整數(shù)變量,變量i、j存放在程序頁中。初始時,程序及i、j均已在內(nèi)存,其余3頁為空。若矩陣A按行序存放,那么當(dāng)程序執(zhí)行完后共產(chǎn)
生( )次缺頁中斷;若矩陣A按列序存放,那么當(dāng)程序執(zhí)行完后共產(chǎn)生( )次缺頁中斷。
A.50
B.100
C.5000
D.10000
?
A.50
B.100
C.5000
D.10000
?
若矩陣A按行序存放,什么意思呢?
什么是行序、什么是列序?由題意中描述的每個頁面存放200個遍歷,行序的意思就是,2行(100*100矩陣)的數(shù)據(jù)由一個頁面存儲,同理列序意思就是2列的數(shù)據(jù)由一個頁面存儲。
一圖勝千言,我們看下繪解的過程吧!!!
矩陣為 100*100,我這里更喜歡叫它二維數(shù)組,那么存放了10000個數(shù)據(jù),每200個數(shù)據(jù)可以存放到內(nèi)存的一個頁面中。
按行序存放的二維數(shù)組,每2行就可以占用一個內(nèi)存頁面,初始狀態(tài)內(nèi)存中的3個頁面都是空的,那么訪問第0和1行時,發(fā)生一次卻也中斷,訪問2和3、4和5行的時候也會發(fā)生缺頁中斷。
?因為內(nèi)存中只有3個頁面空閑了,那么訪問6和7行的時候,會按一定的算法淘汰掉之前用過的頁面,也會發(fā)生缺頁中斷。
總結(jié):對于二維數(shù)組,每2行發(fā)生一次缺頁中斷,總共100行,也就是總共發(fā)生了50次缺頁中斷。
按列序存儲就不一樣了, 二維數(shù)組中的第0列和第1列,存放在內(nèi)存中的一個頁面,第2和3列存放在內(nèi)存中的一個頁面,以此類推...
題目中的嵌套循環(huán),是按行為單位遍歷二維數(shù)組,所以訪問Array[0,0]、Array[0,1]發(fā)生一次缺頁中斷,訪問Array[0,2]、Array[0,3]時候又發(fā)生一次缺頁中斷,那么二維數(shù)組的一行就需要發(fā)生50次缺頁中斷,這就是所謂的系統(tǒng)“抖動現(xiàn)象”。一共需要訪問100行數(shù)據(jù),每行50次缺頁中斷,因此列序存儲的缺頁中斷次數(shù)為5000次。
如何想深入了解操作系統(tǒng)存儲管理、缺頁中斷問題,可以參考以下文章:
http://www.ylaihui.com/blog/article/9276?rootCategoryId=16
總結(jié)
以上是生活随笔為你收集整理的某虚拟存储系统采用最近最少使用(LRU)页面淘汰算法,假定系统为每个作业分配4个页面的主存空间--软考系统架构设计师--不会做题?“猿”来绘个图解决吧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Alpha测试与Beta测试
- 下一篇: 在Windows Server 2008