操作系统 页面置换算法 实验报告 16281027
1.实验目的及基本要求
设计和实现最佳置换算法、先进先出置换算法、最近最久未使用置换算法、页面缓冲置换算法;
通过页面访问序列随机发生器实现对上述算法的测试及性能比较。
2.页面置换算法背景知识说明
(1)请求分页虚拟内存管理
(2)工作集与缺页率
多数程序都显示出高度的局部性,也就是说,在一个时间段内,一组页面被反复引用。
这组被反复引用的页面随着时间的推移,其成员也会发生变化。有时这种变化是剧烈的,有时则是渐进的,我们把这组页面集合称为工作集。
缺页率 = 缺页中断次数/页面总访问次数。
3.课题假设前提说明
页表用整数数组或结构数组来表示。
页面访问序列串是一个整数序列,整数的取值范围为0到 N - 1。
页面访问序列串中的每个元素 p 表示对页面 p 的一次访问。
符合局部访问特性的随机工作集的生成算法:
确定虚拟内存的尺寸 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)最佳置换算法optimal OPT
选择永不使用或是在最长时间内不再被访问(即距现在最长时间才会被访问)的页面淘汰出内存。
OPT属于理想化算法,具有最好性能(对于固定分配页面方式,本法可保证获得最低的缺页率),但实际上却无法实现,主要用于算法评价参照。
(2)先进先出置换算法 FIFO
选择最先进入内存即在内存驻留时间最久的页面换出到外存。进程已调入内存的页面按进入先后次序链接成一个队列,并设置替换指针以指向最老页面。
该算法简单直观,但不符合进程实际运行规律,性能较差,故实际应用极少。
(3)最近最久未使用置换算法 LRU
以“最近的过去”作为“最近的将来”的近似,选择最近一段时间最长时间未被访问的页面淘汰出内存。适用于各种类型的程序,性能较好,但需要较多的硬件支持。
(4)改进型Clock算法
① 从查寻指针当前位置起扫描内存分页循环队列,选择A=0且M=0的第一个页面淘汰;
若未找到,转②;
② 开始第二轮扫