某程序在内存中分配3块内存初始为空访问页的走向为2 32152453252用OPT、FIF0和LRU算 法分别计算缺页次数和缺
页率。
假设分配的内存块数为3,初始为空,则内存中可以容纳3个页面。访问的页面顺序为2,3,2,1,5,2,4,5,3,2,5,2。
首先需要确定每种算法的页面置换策略,然后计算缺页次数和缺页率。
- OPT算法(最优页面置换算法)
OPT算法是根据未来的页面访问情况来预测哪个页面最久没有被访问,然后将该页面置换出去。但由于无法预测未来的访问情况,因此在实际中无法使用OPT算法,只能作为理论上的参考。
按照访问顺序,页面走向如下:
| 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 | |---|---|---|---|---|---|---|---|---|---|---|---|
首先装入3个页面:2,3,1。
当访问到页面5时,内存中已经装满了3个页面,因此需要进行页面置换。
根据OPT算法,预测未来最久没有被访问的页面是4,因此将页面4替换掉。
然后,继续访问页面5,3,2,5,2。
当访问到页面2时,内存中已经装满了3个页面,因此需要进行页面置换。
根据OPT算法,预测未来最久没有被访问的页面是1,因此将页面1替换掉。
然后,继续访问页面5,2。
当访问到页面5时,内存中已经装满了3个页面,因此需要进行页面置换。
根据OPT算法,预测未来最久没有被访问的页面是3,因此将页面3替换掉。
最终,缺页次数为4,缺页率为4/12=33.33%。
- FIFO算法(先进先出页面置换算法)
FIFO算法是按照页面进入内存的先后顺序进行页面置换的算法。
按照访问顺序,页面走向如下:
| 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 | |---|---|---|---|---|---|---|---|---|---|---|---|
首先装入3个页面:2,3,1。
当访问到页面5时,内存中已经装满了3个页面,因此需要进行页面置换。
根据FIFO算法,最先进入内存的页面是2,因此将页面2替换掉。
然后,继续访问页面5,3,2,5,2。
当访问到页面2时,由于页面2已经在内存中,因此不需要进行页面置换。
然后,继续访问页面5,2。
当访问到页面5时,由于页面5已经在内存中,因此不需要进行页面置换。
最终,缺页次数为3,缺页率为3/12=25%。
- LRU算法(最近最久未使用页面置换算法)
LRU算法是根据页面最近一次被访问的时间来选择置换页面的算法。
按照访问顺序,页面走向如下:
| 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 | |---|---|---|---|---|---|---|---|---|---|---|---|
首先装入3个页面:2,3,1。
当访问到页面5时,内存中已经装满了3个页面,因此需要进行页面置换。
根据LRU算法,最近最久未使用的页面是2,因此将页面2替换掉。
然后,继续访问页面5,3,2,5,2。
当访问到页面2时,由于页面2最近被访问过,因此不需要进行页面置换。
然后,继续访问页面5,2。
当访问到页面5时,由于页面5最近被访问过,因此不需要进行页面置换。
最终,缺页次数为3,缺页率为3/12=25%。
原文地址: http://www.cveoy.top/t/topic/boTE 著作权归作者所有。请勿转载和采集!