1、实验目的
设计和实现最佳置换算法、先进先出置换算法、最近最久未使用置换算法、页面缓冲置换算法;通过页面访问序列随机发生器实现对上述算法的测试及性能比较。
2、页面置换算法背景知识
(1) 请求分页虚拟内存管理
请求分页虚拟内存管理是建立在基本分页基础上的,为了能支持虚拟存储器功能,而增加了请求调页功能和置换功能。
(2) 工作集
多数程序都显示出高度的局部性,也就是说,在一个时间段内,一组页面被反复引用。这组被反复引用的页面随着时间的推移,其成员也会发生变化。有时这种变化是剧烈的,有时这种变化则是渐进的。我们把这组页面的集合称为工作集
(3) 缺页率
缺页中断次数/总的页面访问次数
3、实验假设
(1)模拟的虚拟内存的地址为16位,页面大小为1K,模拟的物理内存有32K。
(2)表用整数数组或结构数组来表示
(3) 页面访问序列串是一个整数序列,整数的取值范围为0到N - 1。页面访问序列串中的每个元素p表示对页面p的一次访问
(4) 符合局部访问特性的随机生成算法
- 确定虚拟内存的尺寸N,工作集的起始位置p,工作集中包含的页数e,工作集移动率m(每处理m个页面访问则将起始位置p +1),以及一个范围在0和1之间的值t
- 生成m个取值范围在p和p + e间的随机数,并记录到页面访问序列串中
- 生成一个随机数r,0 ≤ r ≤ 1
- 如果r < t,则为p生成一个新值,否则p = (p + 1) mod N
- 如果想继续加大页面访问序列串的长度,请返回第2步,否则结束
4、实验算法介绍
(1) 最佳置换算法
最佳置换算法的主要思想是,在发生页面替换时,被替换的对象应该满足,在以后的页面访问中,该对象不会再次被访问或者较晚被访问。是一种理想化算法,具有最好性能(对于固定分配页面方式,