分页虚拟存储管理——页面置换算法例题
【例題1】在一個(gè)分頁(yè)虛擬存儲(chǔ)管理系統(tǒng)中,一個(gè)程序的頁(yè)面走向?yàn)?,3,2,1,4,3,5,4,3,2,1,5。利用最久最近未使用算法:
(1) 當(dāng)分配給程序3個(gè)存儲(chǔ)塊時(shí),求出程序的頁(yè)面中斷的次數(shù)
(2) 當(dāng)分配給程序4個(gè)存儲(chǔ)塊時(shí),求出程序的頁(yè)面中斷的次數(shù)
注:在大部分情況下雖然題目沒(méi)有指明,但基本默認(rèn)缺頁(yè)中斷的判斷規(guī)則是:每調(diào)進(jìn)一個(gè)新頁(yè),產(chǎn)生一次頁(yè)面中斷。
解(1):
分配給該作業(yè)的物理塊數(shù)M=3時(shí),頁(yè)面置換情況如下表所示。
綜上表可知:缺頁(yè)中斷的次數(shù)為10
詳細(xì)的分析請(qǐng)參見(jiàn)文末。
解(2):
分配給該作業(yè)的物理塊數(shù)M=3時(shí),頁(yè)面置換情況如下表所示。
綜上表可知:缺頁(yè)中斷的次數(shù)為8
詳細(xì)的分析請(qǐng)參見(jiàn)文末。
【例題2】在一個(gè)分頁(yè)虛擬存儲(chǔ)管理系統(tǒng)中,一個(gè)程序的頁(yè)面走向?yàn)?,4,1,2,5,0,6,3,0,4,2,3,設(shè)分配給該程序的存儲(chǔ)塊數(shù)M=3,每調(diào)進(jìn)一個(gè)新頁(yè)就發(fā)生一次缺頁(yè)中斷。當(dāng)分別采用最佳置換算法、先進(jìn)先出置換算法和最近最久未使用算法時(shí),求缺頁(yè)的次數(shù)和缺頁(yè)中斷率。
解:(1)分配給該作業(yè)的物理塊數(shù)M=3時(shí),利用先進(jìn)先出置換算法得出的頁(yè)面置換情況如下表所示。
例題詳解
- 【例題1】
- 第一小問(wèn)詳解
- 第二小問(wèn)詳解
- 【例題2】
【例題1】
第一小問(wèn)詳解
當(dāng)分配給程序3個(gè)存儲(chǔ)塊時(shí),頁(yè)面置換情況如下表所示。
為了好看,先寫(xiě)一個(gè)空表
訪問(wèn)順序就是按照頁(yè)面走向來(lái)排的,
當(dāng)4進(jìn)來(lái)時(shí),內(nèi)存尚為空,4進(jìn)來(lái)后占據(jù)1頁(yè)。由于在4進(jìn)來(lái)之前內(nèi)存塊中事先沒(méi)有4的存在,所以此時(shí)4對(duì)于內(nèi)存而言是一個(gè)新頁(yè),按照缺頁(yè)中斷的原則每調(diào)進(jìn)一個(gè)新頁(yè)就發(fā)生一次缺頁(yè)中斷,那么缺頁(yè)數(shù)相應(yīng)的加1,此時(shí)缺頁(yè)數(shù)=1。
當(dāng)3進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被4占據(jù)了1塊,此時(shí)內(nèi)存剩余容量為2。當(dāng)3進(jìn)來(lái)后占據(jù)1頁(yè)。由于在3進(jìn)來(lái)之前內(nèi)存中事先沒(méi)有3的存在,所以此時(shí)3對(duì)于內(nèi)存而言是一個(gè)新頁(yè),按照題目缺頁(yè)中斷的原則每調(diào)進(jìn)一個(gè)新頁(yè)就發(fā)生一次缺頁(yè)中斷,那么缺頁(yè)數(shù)相應(yīng)的加1,此時(shí)缺頁(yè)數(shù)=2。
當(dāng)2進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被4、3占據(jù)了2塊,此時(shí)內(nèi)存剩余容量為1。當(dāng)2進(jìn)來(lái)后占據(jù)1頁(yè)。由于在2進(jìn)來(lái)之前內(nèi)存中事先沒(méi)有2的存在,所以此時(shí)2對(duì)于內(nèi)存而言是一個(gè)新頁(yè),按照題目缺頁(yè)中斷的原則每調(diào)進(jìn)一個(gè)新頁(yè)就發(fā)生一次缺頁(yè)中斷,那么缺頁(yè)數(shù)相應(yīng)的加1,此時(shí)缺頁(yè)數(shù)=3。
當(dāng)1進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被4、3、2占據(jù)了3塊,此時(shí)內(nèi)存無(wú)剩余量,且1是一個(gè)新頁(yè),1想要進(jìn)來(lái)就必須替換掉4、3、2中的一個(gè),替換的規(guī)則就是看1左邊的訪問(wèn)過(guò)了的順序4、3、2,找到離1最近的要替換的數(shù)字4、3、2,那么究竟要替換哪一個(gè)數(shù)呢?答案是4最近最久未使用置換算法的原理是:淘汰在最近一段時(shí)間內(nèi)最久沒(méi)有使用的頁(yè),(可以給個(gè)度量來(lái)看,如:上一秒剛訪問(wèn)了2,上上一秒訪問(wèn)了3,上上上一秒訪問(wèn)了4)所以最近最久未使用的就是4,所以就讓1替換掉4,與此同時(shí)缺頁(yè)數(shù)加1,此時(shí)缺頁(yè)數(shù)=4。
當(dāng)4進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被1、3、2占據(jù)了3塊,此時(shí)內(nèi)存無(wú)剩余量,且4是一個(gè)新頁(yè),4想要進(jìn)來(lái)就必須替換掉1、3、2中的一個(gè),替換的規(guī)則就是看4左邊的訪問(wèn)過(guò)了的順序4、3、2、1,找到離4最近的要替換的數(shù)字1、3、2,那么究竟要替換哪一個(gè)數(shù)呢?答案是3最近最久未使用置換算法的原理是:淘汰在最近一段時(shí)間內(nèi)最久沒(méi)有使用的頁(yè),(可以給個(gè)度量來(lái)看,如:上一秒剛訪問(wèn)了1,上上一秒訪問(wèn)了2,上上上一秒訪問(wèn)了3)所以最近最久未使用的就是3,所以就讓4替換掉3,與此同時(shí)缺頁(yè)數(shù)加1,此時(shí)缺頁(yè)數(shù)=5。
當(dāng)3進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被1、4、2占據(jù)了3塊,此時(shí)內(nèi)存無(wú)剩余量,且3是一個(gè)新頁(yè),3想要進(jìn)來(lái)就必須替換掉1、4、2中的一個(gè),替換的規(guī)則就是看3左邊的訪問(wèn)過(guò)了的順序4、3、2、1、4,找到離3最近的要替換的數(shù)字1、4、2,那么究竟要替換哪一個(gè)數(shù)呢?答案是2最近最久未使用置換算法的原理是:淘汰在最近一段時(shí)間內(nèi)最久沒(méi)有使用的頁(yè),(可以給個(gè)度量來(lái)看,如:上一秒剛訪問(wèn)了4,上上一秒訪問(wèn)了1,上上上一秒訪問(wèn)了2)所以最近最久未使用的就是2,所以就讓3替換掉2,與此同時(shí)缺頁(yè)數(shù)加1,此時(shí)缺頁(yè)數(shù)=6。
當(dāng)5進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被1、4、3占據(jù)了3塊,此時(shí)內(nèi)存無(wú)剩余量,且5是一個(gè)新頁(yè),5想要進(jìn)來(lái)就必須替換掉1、4、3中的一個(gè),替換的規(guī)則就是看5左邊的訪問(wèn)過(guò)了的順序4、3、2、1、4、3,找到離5最近的要替換的數(shù)字1、4、3,那么究竟要替換哪一個(gè)數(shù)呢?答案是1最近最久未使用置換算法的原理是:淘汰在最近一段時(shí)間內(nèi)最久沒(méi)有使用的頁(yè),(可以給個(gè)度量來(lái)看,如:上一秒剛訪問(wèn)了3,上上一秒訪問(wèn)了4,上上上一秒訪問(wèn)了1)所以最近最久未使用的就是1,所以就讓5替換掉1,與此同時(shí)缺頁(yè)數(shù)加1,此時(shí)缺頁(yè)數(shù)=7。
當(dāng)4進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被5、4、3占據(jù)了3塊,此時(shí)內(nèi)存剩余量為0。當(dāng)4進(jìn)來(lái)后,由于在4進(jìn)來(lái)之前內(nèi)存中事先有4的存在。所以此時(shí)的4對(duì)于內(nèi)存而言不是一個(gè)新頁(yè)。內(nèi)存塊無(wú)需被多占據(jù)1頁(yè),相應(yīng)的缺頁(yè)數(shù)也無(wú)需變化。
當(dāng)3進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被5、4、3占據(jù)了3塊,此時(shí)內(nèi)存剩余量為0。當(dāng)3進(jìn)來(lái)后,由于在3進(jìn)來(lái)之前內(nèi)存中事先有3的存在。所以此時(shí)的3對(duì)于內(nèi)存而言不是一個(gè)新頁(yè)。內(nèi)存塊無(wú)需被多占據(jù)1頁(yè),相應(yīng)的缺頁(yè)數(shù)也無(wú)需變化。
當(dāng)2進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被5、4、3占據(jù)了3塊,此時(shí)內(nèi)存無(wú)剩余量,且2是一個(gè)新頁(yè),2想要進(jìn)來(lái)就必須替換掉5、4、3中的一個(gè),替換的規(guī)則就是看2左邊的訪問(wèn)過(guò)了的順序4、3、2、1、4、3、5、4、3,找到離2最近的要替換的數(shù)字5、4、3,那么究竟要替換哪一個(gè)數(shù)呢?答案是5最近最久未使用置換算法的原理是:淘汰在最近一段時(shí)間內(nèi)最久沒(méi)有使用的頁(yè),(可以給個(gè)度量來(lái)看,如:上一秒剛訪問(wèn)了3,上上一秒訪問(wèn)了4,上上上一秒訪問(wèn)了5)所以最近最久未使用的就是5,所以就讓2替換掉5,與此同時(shí)缺頁(yè)數(shù)加1,此時(shí)缺頁(yè)數(shù)=8。
當(dāng)1進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被2、4、3占據(jù)了3塊,此時(shí)內(nèi)存無(wú)剩余量,且1是一個(gè)新頁(yè),1想要進(jìn)來(lái)就必須替換掉2、4、3中的一個(gè),替換的規(guī)則就是看1左邊的訪問(wèn)過(guò)了的順序4、3、2、1、4、3、5、4、3、2,找到離1最近的要替換的數(shù)字2、4、3,那么究竟要替換哪一個(gè)數(shù)呢?答案是4最近最久未使用置換算法的原理是:淘汰在最近一段時(shí)間內(nèi)最久沒(méi)有使用的頁(yè),(可以給個(gè)度量來(lái)看,如:上一秒剛訪問(wèn)了2,上上一秒訪問(wèn)了3,上上上一秒訪問(wèn)了4)所以最近最久未使用的就是4,所以就讓1替換掉4,與此同時(shí)缺頁(yè)數(shù)加1,此時(shí)缺頁(yè)數(shù)=9。
當(dāng)5進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被2、1、3占據(jù)了3塊,此時(shí)內(nèi)存無(wú)剩余量,且5是一個(gè)新頁(yè),5想要進(jìn)來(lái)就必須替換掉2、1、3中的一個(gè),替換的規(guī)則就是看5左邊的訪問(wèn)過(guò)了的順序4、3、2、1、4、3、5、4、3、2、1,找到離5最近的要替換的數(shù)字2、1、3,那么究竟要替換哪一個(gè)數(shù)呢?答案是3最近最久未使用置換算法的原理是:淘汰在最近一段時(shí)間內(nèi)最久沒(méi)有使用的頁(yè),(可以給個(gè)度量來(lái)看,如:上一秒剛訪問(wèn)了1,上上一秒訪問(wèn)了2,上上上一秒訪問(wèn)了3)所以最近最久未使用的就是3,所以就讓5替換掉3,與此同時(shí)缺頁(yè)數(shù)加1,此時(shí)缺頁(yè)數(shù)=10。
綜上:當(dāng)分配給程序3個(gè)存儲(chǔ)塊時(shí),程序的頁(yè)面中斷的次數(shù)為10
第二小問(wèn)詳解
當(dāng)分配給程序4個(gè)存儲(chǔ)塊時(shí),頁(yè)面置換情況如下表所示。
為了好看,先寫(xiě)一個(gè)空表
訪問(wèn)順序就是按照頁(yè)面走向來(lái)排的,
當(dāng)4進(jìn)來(lái)時(shí),內(nèi)存尚為空,4進(jìn)來(lái)后占據(jù)1頁(yè)。由于在4進(jìn)來(lái)之前內(nèi)存塊中事先沒(méi)有4的存在,所以此時(shí)4對(duì)于內(nèi)存而言是一個(gè)新頁(yè),按照缺頁(yè)中斷的原則每調(diào)進(jìn)一個(gè)新頁(yè)就發(fā)生一次缺頁(yè)中斷,那么缺頁(yè)數(shù)相應(yīng)的加1,此時(shí)缺頁(yè)數(shù)=1。
當(dāng)3進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被4占據(jù)了1塊,此時(shí)內(nèi)存剩余容量為2。當(dāng)3進(jìn)來(lái)后占據(jù)1頁(yè)。由于在3進(jìn)來(lái)之前內(nèi)存中事先沒(méi)有3的存在,所以此時(shí)3對(duì)于內(nèi)存而言是一個(gè)新頁(yè),按照題目缺頁(yè)中斷的原則每調(diào)進(jìn)一個(gè)新頁(yè)就發(fā)生一次缺頁(yè)中斷,那么缺頁(yè)數(shù)相應(yīng)的加1,此時(shí)缺頁(yè)數(shù)=2。
當(dāng)2進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被4、3占據(jù)了2塊,此時(shí)內(nèi)存剩余容量為1。當(dāng)2進(jìn)來(lái)后占據(jù)1頁(yè)。由于在2進(jìn)來(lái)之前內(nèi)存中事先沒(méi)有2的存在,所以此時(shí)2對(duì)于內(nèi)存而言是一個(gè)新頁(yè),按照題目缺頁(yè)中斷的原則每調(diào)進(jìn)一個(gè)新頁(yè)就發(fā)生一次缺頁(yè)中斷,那么缺頁(yè)數(shù)相應(yīng)的加1,此時(shí)缺頁(yè)數(shù)=3。
當(dāng)1進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被4、3、2占據(jù)了3塊,此時(shí)內(nèi)存剩余容量為1。當(dāng)1進(jìn)來(lái)后占據(jù)1頁(yè)。由于在1進(jìn)來(lái)之前內(nèi)存中事先沒(méi)有1的存在,所以此時(shí)1對(duì)于內(nèi)存而言是一個(gè)新頁(yè),按照題目缺頁(yè)中斷的原則每調(diào)進(jìn)一個(gè)新頁(yè)就發(fā)生一次缺頁(yè)中斷,那么缺頁(yè)數(shù)相應(yīng)的加1,此時(shí)缺頁(yè)數(shù)=4。
當(dāng)4進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被4、3、2、1占據(jù)了4塊,此時(shí)內(nèi)存剩余量為0。當(dāng)4進(jìn)來(lái)后,由于在4進(jìn)來(lái)之前內(nèi)存中事先有4的存在。所以此時(shí)的4對(duì)于內(nèi)存而言不是一個(gè)新頁(yè)。內(nèi)存塊無(wú)需被多占據(jù)1頁(yè),相應(yīng)的缺頁(yè)數(shù)也無(wú)需變化。
當(dāng)3進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被4、3、2、1占據(jù)了4塊,此時(shí)內(nèi)存剩余量為0。當(dāng)3進(jìn)來(lái)后,由于在3進(jìn)來(lái)之前內(nèi)存中事先有3的存在。所以此時(shí)的3對(duì)于內(nèi)存而言不是一個(gè)新頁(yè)。內(nèi)存塊無(wú)需被多占據(jù)1頁(yè),相應(yīng)的缺頁(yè)數(shù)也無(wú)需變化。
當(dāng)5進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被4、3、2、1占據(jù)了4塊,此時(shí)內(nèi)存無(wú)剩余量,且5是一個(gè)新頁(yè),5想要進(jìn)來(lái)就必須替換掉4、3、2、1中的一個(gè),替換的規(guī)則就是看5左邊的訪問(wèn)過(guò)了的順序4、3、2、1、4、3找到離5最近的要替換的數(shù)字4、3、2、1,那么究竟要替換哪一個(gè)數(shù)呢?答案是2最近最久未使用置換算法的原理是:淘汰在最近一段時(shí)間內(nèi)最久沒(méi)有使用的頁(yè),(可以給個(gè)度量來(lái)看,如:上一秒剛訪問(wèn)了3,上上一秒訪問(wèn)了4,上上上一秒訪問(wèn)了1,上上上上一秒訪問(wèn)了2)所以最近最久未使用的就是2,所以就讓5替換掉2,與此同時(shí)缺頁(yè)數(shù)加1,此時(shí)缺頁(yè)數(shù)=5。
當(dāng)4進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被4、3、5、1占據(jù)了4塊,此時(shí)內(nèi)存剩余量為0。當(dāng)4進(jìn)來(lái)后,由于在4進(jìn)來(lái)之前內(nèi)存中事先有4的存在。所以此時(shí)的4對(duì)于內(nèi)存而言不是一個(gè)新頁(yè)。內(nèi)存塊無(wú)需被多占據(jù)1頁(yè),相應(yīng)的缺頁(yè)數(shù)也無(wú)需變化。
當(dāng)3進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被4、3、5、1占據(jù)了4塊,此時(shí)內(nèi)存剩余量為0。當(dāng)3進(jìn)來(lái)后,由于在3進(jìn)來(lái)之前內(nèi)存中事先有3的存在。所以此時(shí)的3對(duì)于內(nèi)存而言不是一個(gè)新頁(yè)。內(nèi)存塊無(wú)需被多占據(jù)1頁(yè),相應(yīng)的缺頁(yè)數(shù)也無(wú)需變化。
當(dāng)2進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被4、3、5、1占據(jù)了4塊,此時(shí)內(nèi)存無(wú)剩余量,且2是一個(gè)新頁(yè),2想要進(jìn)來(lái)就必須替換掉4、3、5、1中的一個(gè),替換的規(guī)則就是看2左邊的訪問(wèn)過(guò)了的順序4、3、2、1、4、3、5、4、3找到離2最近的要替換的數(shù)字4、3、5、1,那么究竟要替換哪一個(gè)數(shù)呢?答案是1最近最久未使用置換算法的原理是:淘汰在最近一段時(shí)間內(nèi)最久沒(méi)有使用的頁(yè),(可以給個(gè)度量來(lái)看,如:上一秒剛訪問(wèn)了3,上上一秒訪問(wèn)了4,上上上一秒訪問(wèn)了5,上上上上上上一秒訪問(wèn)了1)所以最近最久未使用的就是1,所以就讓2替換掉1,與此同時(shí)缺頁(yè)數(shù)加1,此時(shí)缺頁(yè)數(shù)=6。
當(dāng)1進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被4、3、5、2占據(jù)了4塊,此時(shí)內(nèi)存無(wú)剩余量,且1是一個(gè)新頁(yè),1想要進(jìn)來(lái)就必須替換掉4、3、5、2中的一個(gè),替換的規(guī)則就是看1左邊的訪問(wèn)過(guò)了的順序4、3、2、1、4、3、5、4、3、2找到離1最近的要替換的數(shù)字4、3、5、2,那么究竟要替換哪一個(gè)數(shù)呢?答案是5最近最久未使用置換算法的原理是:淘汰在最近一段時(shí)間內(nèi)最久沒(méi)有使用的頁(yè),(可以給個(gè)度量來(lái)看,如:上一秒剛訪問(wèn)了2,上上一秒訪問(wèn)了3,上上上一秒訪問(wèn)了4,上上上上一秒訪問(wèn)了5)所以最近最久未使用的就是5,所以就讓1替換掉5,與此同時(shí)缺頁(yè)數(shù)加1,此時(shí)缺頁(yè)數(shù)=7。
當(dāng)5進(jìn)來(lái)時(shí),內(nèi)存已經(jīng)被4、3、1、2占據(jù)了4塊,此時(shí)內(nèi)存無(wú)剩余量,且5是一個(gè)新頁(yè),5想要進(jìn)來(lái)就必須替換掉4、3、1、2中的一個(gè),替換的規(guī)則就是看5左邊的訪問(wèn)過(guò)了的順序4、3、2、1、4、3、5、4、3、2、1找到離5最近的要替換的數(shù)字4、3、1、2,那么究竟要替換哪一個(gè)數(shù)呢?答案是4最近最久未使用置換算法的原理是:淘汰在最近一段時(shí)間內(nèi)最久沒(méi)有使用的頁(yè),(可以給個(gè)度量來(lái)看,如:上一秒剛訪問(wèn)了1,上上一秒訪問(wèn)了2,上上上一秒訪問(wèn)了3,上上上上一秒訪問(wèn)了4)所以最近最久未使用的就是4,所以就讓5替換掉4,與此同時(shí)缺頁(yè)數(shù)加1,此時(shí)缺頁(yè)數(shù)=8。
綜上:當(dāng)分配給程序4個(gè)存儲(chǔ)塊時(shí),程序的頁(yè)面中斷的次數(shù)為8
【例題2】
總結(jié)
以上是生活随笔為你收集整理的分页虚拟存储管理——页面置换算法例题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android自定义View,仿QQ显示
- 下一篇: Jlink修复指南step by ste