1.最佳置换算法OPT(Optimal Replacement Algorithm)
又称理想淘汰算法、最佳页面算法等。其基本思想是:总选择那些以后不再需要的或将来最长时间之后才会用到的页面进行淘汰。
例:设系统为某进程分配3个物理块,并且该进程运行的过程中,对页面的访问序列为:2、3、4、5、2、3、1、2、3、4、5、1。
解:
首先把2、3、4三个页面装入内存中。当访问到5的时候,发现它不在内存中,于是产生页面中断。再根据OPT算法将页面4淘汰,因为4是最长时间之后才会被访问到的页面。依此类推,此进程运行中产生了4次中断,其中断率4/12=33%
技巧:从页面走向序列中当前访问页面开始顺着数,淘汰掉在页架的页面中最长访问的一个,然后把当前访问页面补如进去。
你可以理解为:”向后看“/”向后数“/”顺着数“
2.先进先出置换算法FIFO(First In First Out)
是最早出现的页面置换算法,也是最直观的置换算法。算法的思想是淘汰最先进入内存的页面,也就是选择一个在内存中驻留时间最久的页面予以淘汰。
以上题的要求为例
解:
首先把2、3、4三个页面装入内存,根据FIFO算法淘汰掉页面2,因为页面2是最先进入内存的,然后装入页面5……以此类推。
技巧:数每个页架中的页面出现次数,即是它驻留的时间,淘汰次数最多的一个即可,然后装入新的页面。
分配3个物理块时,命中3次。
Belady现象:FIFO置换算法会出现一种异常现象,即在相同的进程页面访问次序下,进程得到的物理块数增多时,命中(要访问的页面在内存里)次数有时不但不随之增加,反而会有所下降。
分配4个物理块时,命中2次。
3.最近最少使用置换算法LRU(Least Recently Used)
是最佳置换算法的一种近似算法。该算法淘汰的页面是在最近一段时间里较久未被访问的那一页。它的基本思想是根据程序执行时所体现出的局部性来考虑的,即那些刚被使用过的页面,可能马上还要被使用,而那些在较长时间里未被使用的页面,一般说可能不会马上使用到。
例:设系统分配给某进程3个物理块,页面访问序列为:4、3、2、1、4、3、5、4、3、2、1、5。
解:
首先,该进程运行时先将4、3、2三个页面装入内存,随后根据LRU算法淘汰页面4,装入页面1。这是因为4是最久未被访问到的页面。
技巧:沿着页面走向在当前访问页面的位置开始逆着数,最后一个就是淘汰的一个页面。
例如:4、3、2、1,当访问到页面1时,淘汰页面4。