最佳置换算法OPT
其所淘汰的页面将是 ①以后不再使用的②或者在未来最长的时间内不再被访问的页面
采用OPT算法可保证最低的缺页率。但实际上,我们并不能预知一个进程在内存的若干页面中,哪个页面会是未来最长时间不被访问的,因而OPT算法只是一种理论算法,无法实现,可用来评价其他算法的好坏。
例题:
在请求分页系统中,一个进程的页面访问走向是:1、7、2、3、1、7、5、1、7、2、3、5;如果分配给此进程的物理块数为 3,分析采用最佳置换算法时的页面置换过程,并计算缺页次数。
① | ② | ③ | ④ | ⑤ | ⑥ | ⑦ | ⑧ | ⑨ | ⑩ | |||
访问页 | 1 | 7 | 2 | 3 | 1 | 7 | 5 | 1 | 7 | 2 | 3 | 5 |
内存页 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | |||||
7 | 7 | 7 | 7 | 7 | 3 | |||||||
2 | 3 | 5 | 5 | 5 | ||||||||
缺页否 | √ | √ | √ | √ | × | × | √ | × | × | √ | √ | × |
(表中最上面①~⑩序号仅为了讲解方便,实际做题时,没有这一行)
解释:
①开始时1、7、2分别装入内存
②要访问页面3时,内存中没有3,产生缺页中断,需置换一次。此时往右看,2离当前位置最远,将2置换成3;更新后内存页1、7、3
③要访问页面1时,1已在内存中,不产生缺页中断,内存页不变1、7、3
④要访问页面7时,7已在内存中,不产生缺页中断,内存页不变1、7、3
⑤要访问页面5时,内存中没有5,产生缺页中断,需置换一次。此时往右看,3离当前位置最远,将3置换成5;更新后内存页1、7、5
⑥要访问页面1时,1已在内存中,不产生缺页中断,内存页不变1、7、5
⑦要访问页面7时,7已在内存中,不产生缺页中断,内存页不变1、7、5
⑧要访问页面2时,内存中没有2,产生缺页中断,需置换一次。此时往右看,1、7都已不再使用,此时优先替换1,因为1在内存驻留时间最长,将1置换为2;更新后内存页2、7、5
⑨要访问页面3时,内存中没有3,产生缺页中断,需置换一次。此时往右看,2、7都已不再使用,此时优先替换7,因为7在内存驻留时间最长,将7置换为3;更新后内存页2、3、5
⑩要访问页面5时,5已在内存中,不产生缺页中断,内存页不变2、3、5
综上可知,缺页次数7次.