页面置换算法
1 最佳置换算法(OPT,Optimal)
算法思想:每次选择淘汰的页面将是以后永不使用,或者在最长时间内不再被访问的页面,这样可以保证最低的缺页率。
举例说明,假设系统为进程分配了三个内存块,并考虑到有以下页面号引用串(会依次访问这些页面):7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
第一个访问的是7号页,内存中没有此页,由缺页中断机构将7号页调入内存。此时有三个可用的内存块,不需要置换。即第一次(7) :7
同理,第二个访问的是0号页,和第一次一样,第三次访问的是1号页,同样1号页也会被调入内存,1号内被调入内存后,此时分配给该进程内存空间已占满。
第二次(0):7 0
第三次(1):7 0 1
第四个访问的页是2号页,此时内存已经用完,需要将一个页调出内存,根据最佳置换算法,淘汰一个以后永不使用或最长时间不使用的,此时内存中的页有7、0、1,查看待访问页号序列中这三个页号的先后位置,下图可以看到,0号页和1号页在不久又会被访问到,而7号页需要被访问的时间最久。所以该算法会淘汰7号页。
第一次(7) :7
第二次(0):7 0
第三次(1):7 0 1
第四次(2):0 1 2
....按照此算法依次执行,最后的结果如下
第一次(7) :7
第二次(0):