最佳置换算法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次.