最佳页面置换算法
在一個(gè)請(qǐng)求分頁(yè)系統(tǒng)中,采用最佳頁(yè)面置換算法時(shí),假如一個(gè)作業(yè)的頁(yè)面走向?yàn)?、3、2、1、4、3、5、4、3、2、1、5,當(dāng)分配給該作業(yè)的物理塊數(shù)M分別為3和4時(shí),試計(jì)算在訪問過程中所發(fā)生的缺頁(yè)次數(shù)和缺頁(yè)率。請(qǐng)給出分析過程。
解析:所謂的最佳(Optimal)頁(yè)面置換算法就是說 所淘汰的頁(yè)面將是以后永不使用的頁(yè)面,或者是再未來很長(zhǎng)一段時(shí)間內(nèi)都不再被訪問的頁(yè)面。若產(chǎn)生缺頁(yè)中斷,但是后續(xù)都未用到其他頁(yè)面,則根據(jù)最先更新原則,將最晚更新的頁(yè)面給淘汰。
頁(yè)面置換:內(nèi)存物理塊不夠,需要淘汰頁(yè)面
缺頁(yè)中斷:要訪問的頁(yè)不在主存
缺頁(yè)率:發(fā)生缺頁(yè)次數(shù)/總共的頁(yè)面數(shù)
物理塊數(shù)為3時(shí):
| 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 2 | 2 | 2 |
| 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 1 | 1 | |
| 2 | 1 | 1 | 1 | 5 | 5 | 5 | 5 | 5 | 5 | ||
| 頁(yè)面置換1 | 頁(yè)面置換2 | 頁(yè)面置換3 | 頁(yè)面置換4 | ||||||||
| 缺頁(yè)中斷1 | 缺頁(yè)中斷2 | 缺頁(yè)中斷3 | 缺頁(yè)中斷4 | 缺頁(yè)中斷5 | 缺頁(yè)中斷6 | 缺頁(yè)中斷7 |
頁(yè)面置換1:當(dāng)進(jìn)程訪問頁(yè)面1時(shí),將會(huì)產(chǎn)生頁(yè)面置換,4 3 2進(jìn)行淘汰,往遠(yuǎn)處(右)觀察,頁(yè)面2最遠(yuǎn),則淘汰頁(yè)面2。
頁(yè)面置換2:當(dāng)進(jìn)程訪問頁(yè)面5時(shí),將會(huì)產(chǎn)生頁(yè)面置換,4 3 1進(jìn)行淘汰,往遠(yuǎn)處(右)觀察,頁(yè)面1最遠(yuǎn),則淘汰頁(yè)面1。
頁(yè)面置換3:當(dāng)進(jìn)程訪問頁(yè)面2時(shí),將會(huì)產(chǎn)生頁(yè)面置換,4 3 5進(jìn)行淘汰,往遠(yuǎn)處(右)觀察,看出5還會(huì)用到,但是4和3已經(jīng)沒用了,再往前放(左)觀察,4更新的最晚,將4淘汰。
頁(yè)面置換4:當(dāng)進(jìn)程訪問頁(yè)面1時(shí),將會(huì)產(chǎn)生頁(yè)面置換,2 3 5進(jìn)行淘汰,往遠(yuǎn)處(右)觀察,看出5還會(huì)用到,但是2和3已經(jīng)沒用了,再往前放(左)觀察,3更新的最晚,將3淘汰。
缺頁(yè)次數(shù):7
缺頁(yè)率:7/12
物理塊數(shù)為4時(shí):
| 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 1 | 1 |
| 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | |
| 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | ||
| 1 | 1 | 1 | 5 | 5 | 5 | 5 | 5 | 5 | |||
| 頁(yè)面置換1 | 頁(yè)面置換2 | ||||||||||
| 缺頁(yè)中斷1 | 缺頁(yè)中斷2 | 缺頁(yè)中斷3 | 缺頁(yè)中斷4 | 缺頁(yè)中斷5 | 缺頁(yè)中斷6 |
頁(yè)面置換1:當(dāng)進(jìn)程訪問頁(yè)面5時(shí),將會(huì)產(chǎn)生頁(yè)面置換,4 3 2 1進(jìn)行淘汰,往遠(yuǎn)處(右)觀察,頁(yè)面1最遠(yuǎn),則淘汰頁(yè)面1。
頁(yè)面置換2:當(dāng)進(jìn)程訪問頁(yè)面1時(shí),將會(huì)產(chǎn)生頁(yè)面置換,4 3 2 5進(jìn)行淘汰,往遠(yuǎn)處(右)觀察,看出5還會(huì)用到,但是4 3 2已經(jīng)沒用了,再往前放(左)觀察,4更新的最晚,將4淘汰。
缺頁(yè)次數(shù):6
缺頁(yè)率:6/12
總結(jié)
- 上一篇: 在与 SQL Server 建立连接时出
- 下一篇: 并发进程同步