实验四:页面置换
安全1601 16281221 邓子轩
一、 需求分析
设计和实现最佳置换算法、先进先出换算法、最近最久未使用置换算法、页面缓冲置换算法、改进Clock置换算法;通过页面访问序列随机发生器实现对上述算法的测试及性能比较。
二、 概要设计
工作集
多数程序都显示出高度的局部性,也就是说,在一个时间段内,一组页面被反复引用。这组被反复引用的页面随着时间的推移,其成员也会发生变化。有时这种变化是剧烈的,有时这种变化则是渐进的。我们把这组页面的集合称为工作集。
缺页率
缺页率 = 缺页中断次数/页面访问次数
1.最佳置换算法
基本思想:
选择缓冲区内永不使用或是最长时间内不再被访问(即距现在最长时间才会被访问)的页面淘汰出内存。
流程图:
评价:
最佳置换算法是一个理想的化的算法,具有最好的性能(对于固定分配页面方式,本方法可以保证获得最低的缺页率)。但是人们目前还无法预测,一个进程在内存的若干个页面中,哪一个页面是未来最长时间内不再被访问的,因而该算法是无法实现的,但是可以利用该算法取评价其他的算法。故主要用于算法评价参照。
2.先进先出置换算法
基本思想:
选择最先进入内存即在内存驻留时间最久的页面换出到外存
进程已调入内存的页面按照先后次序链接成一个队列,并设置替换指针以指向最老页面
流程图:
评价:
先进先出算法简单直观,但是不符合进程实际的运行规律,性能较差,故实际应用极少。
3.最近最久未使用置换算法
基本思想:
以”最近的过去”作为”最近的将来”的近似,选择最近一段时间最长时间未被访问的页面淘汰出内存。
流程图:
评价:
LRU算法适用于各种类型的程序,性能较好,但是需要较多的硬件支持。
4.改进型Clock置换法
基本思想:
① 从查寻指针当前位置起扫描内存分页循环队列,选择A=0且M=0的第一个页面淘汰;若未找到,转②
② 开始第二轮扫描,选择A=0且M=1的第一个页面淘汰,同时将经过的所有页