1.学习常见的 4 种页面置换算法:最佳置换算法(OPT),先进先出页面置换算
法(FIFO),最近最久未使用页面算法(LRU),最少使用置换算法(LFU)。
2.
编写函数并计算输出上述各种算法的命中率。
二、总体设计(设计原理、设计方案及流程等)
OPT 所选择被淘汰的页面是已调入内存,且在以后永不使用的,或是在最长时间内不再被访
问的页面。因此如何找出这样的页面是该算法的关键。可为每个页面设置一个步长变量,其
初值为一足够大的数,对于不在内存的页面,将其值重置为零,对于位于内存的页面,其值
重置为当前访问页面与之后首次出现该页面时两者之间的距离,因此该值越大表示该页是在
最长时间内不再被访问的页面,可以选择其作为换出页面。
FIFO 页面置换算法
FIFO 总是选择最先进入内存的页面予以淘汰,因此可设置一个先进先出的忙页帧队列,新
调入内存的页面挂在该队列的尾部,而当无空闲页帧时,可从该队列首部取下一个页帧作为
空闲页帧,进而调入所需页面。
LRU 是根据页面调入内存后的使用情况进行决策的,它利用“最近的过去”作为“最近的将
来”的近似,选择最近最久未使用的页面予以淘汰。该算法主要借助于页面结构中的访问时
间 time 来实现,time 记录了一个页面上次的访问时间,因此,当须淘汰一个页面时,选择
处于内存的页面中其 time 值最小的页面,即最近最久未使用的页面予以淘汰。
LFU 页面置换算法
LFU 要求为每个页面配置一个计数器(即页面结构中的 counter),一旦某页被访问,则将
其计数器的值加 1,在需要选择一页置换时,则将选择其计数器值最小的页面,即内存中访
问次数最少的页面进行淘汰。