1、 操作系统课程设计报告操作系统课程设计报告 题目:题目:页面置换算法模拟设计页面置换算法模拟设计 2013 年年 1 月月 16 日日 一、实验目的一、实验目的 1、熟悉内存分页管理策略。 2、了解页面置换的算法。 3、掌握一般常用的调度算法。 4、根据方案使算法得以模拟实现。 5、锻炼知识的运用能力和实践能 本次课程设计是在学习完操作系统教程后进行的一次全面的综合训练,通过课程 设计, 让学生更好的掌握操作系统的原理以及实现方法, 加深对操作系统基础理论和重要算 法的理解加强对学生的动手能力。 熟悉页面置换算法及其实现, 引入计算机操作性能评价方 法的概念。 二、实验要求二、实验要求 计算并
2、输出下述各种算法在不同内存容量下的命中率。 A.FIFO 先进先出的算法 B.LRU 最近最少使用算法 OPT 最佳淘汰算法(先淘汰最不常用的页地址) 三、开发环境三、开发环境 软件环境:w7 编程软件 :VC+6.0 运行平台: Win32 硬 件: 普通个人 pc 机 四设计思想:四设计思想: OPT 基本思想:基本思想: 是用一维数组 pagepSIZE存储页面号序列,memerymSIZE是存储装入物 理块中的页面。数组 nextmSIZE记录物理块中对应页面的最后访问时间。每当 发生缺页时,就从物理块中找出最后访问时间最大的页面,调出该页,换入所缺 的页面。 FIFO 基本思想基本思
3、想: 是用队列存储内存中的页面,队列的特点是先进先出,与该算法是一致的, 所以每当发生缺页时,就从队头删除一页,而从队尾加入缺页。或者借助辅助数 组 timemSIZE记录物理块中对应页面的进入时间,每次需要置换时换出进入时 间最小的页面。 LRU 基本思想基本思想: 是用一维数组 pagepSIZE存储页面号序列,memerymSIZE是存储装入物 理块中的页面。数组 flag10标记页面的访问时间。每当使用页面时,刷新访问 时间。发生缺页时,就从物理块中页面标记最小的一页,调出该页,换入所缺的 实验过程:实验过程: 流程图:流程图: 将页号放入物理块中,编号加将页号放入物理块中,编号加 1
4、 引用串编号大引用串编号大 于物理块数于物理块数? 载入页号序列,从第载入页号序列,从第 0 个得到个得到页号页号 开始开始 页号在物理块中页号在物理块中? 根据选择的置换算法完成置换根据选择的置换算法完成置换 页号序列载完页号序列载完? 结束结束 是是 否否 是是 是是 是是 是是 源程序源程序 #include #include #include #include #define L 320 int M; /内存块 struct Pro/定义一个结构体 int num,time; ; Input(int m,Pro pL)/打印页面走向状态 cout320|mM; if(M32|Mc; s
5、ystem(“cls“); if(c=1)/FIFO 页面置换 n=0; cout“ * “endl; coutendl; cout“ FIFO 算法页面置换情况如下: “endl; coutendl; cout“ * “endl; while(i=0) /当前页面在内存中 coutpi.num“ “; /输出当前页 pi.num cout“不缺页“endl; i+; /i 加 1 else /当前页不在内存中 if(t=M)t=0; else n+; /缺页次数加 1 paget.num=pi.num; /把当前页面放入内存中 coutpi.num“ “; print(page); /打印当前页面 t+; /下一个内存块 i+; /指向下一个页面 cout“缺页次数:“n“ 缺页率:“n/mendl; cout“不缺页次数:“(m-n)“ 命中率:“(1-n/m)endl; if(c=2)/LRU 页面置换 n=0; cout“ * “endl; coutendl; cout“ LRU 算法页面置换情