页面置换算法实验实验 一、实验目的 通过编写和调试页面置换算法的模拟程序以加深对虚拟存储管理技术的理解,掌握几种基本页面置换算法的基本思想和实现过程,并比较它们的效率
二、实验要求 编写程序用来模拟虚拟页式存储管理中的页面置换算法,要求至少采用两种不同的页面置换算法分别进行模拟
物理块固定为 4块 2
从键盘输入 N个页面号 3
输出每次物理块中的页面号和缺页次数,缺页率 三、实验方法内容 1
算法设计思路 在内存运行过程中,若其所要访问的页面不在内存而需要把他们调入内存,但内存已经没有空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据送磁盘的对换区中
但应将那个页面调出,需根据一定的算法来确定
通常,把选择换出页面的算法成为页面置换算法
置换算法的好坏,将直接影响到系统的性能
一个好的页面置换算法,应具有较低的页面更换频率
从理论上讲,应将那些以后不再会访问的页面置换出,或者把那些在较长时间内不会在访问的页面调出
目前存在着许多种置换算法(如 FIFO,OPT,LRU),他们都试图更接近理论上的目标
算法流程图 开始void PageReplacement::Start(int tactics)PageReplacement构造函数得到页面序列,调用Init()初始化各项数据根据选择的页面置换算法开始执行计算输出缺页率结束void PageReplacement::PageFaultRate()#define _OPT 0//最佳页面置换#define _FIFO 1//先进先出#define _LRU 2//最近最少使用 开始判断当前页面序列是否已到末尾N判断当前访问页面是否缺页页面序列加1,开始下一个页面输出当前页面和页框状态N缺页数加1 Y选择相应页面置换算法,计算出应被置换出的物理块号根据上一步得到的页块