1、 操作系统课程设计报告操作系统课程设计报告 项目:模拟请求页式存储管理 模拟页式存储管理 1 一、目的和要求 1 1、 实训实训目的目的 (1)通过编写和调试存储管理的模拟程序以加深对存储管理方案的 理解。熟悉虚存管理的各种页面淘汰算法 (2)通过编写和调试地址转换过程的模拟程序以加强对地址转换过 程的了解。 2、实训要求 编写并调试完成请求页式存储管理程序。 页面置换算法:最佳置换算法(OPT) 、先进先出算法(FIFO)和最 近最少用算法(LRU) 。 要求打印每个页面置换算法的页面置换变化示意图、缺页中断次 数和缺页中断率,以比较各种算法的优缺点。 二、设计思路及过程 1、概要设计 1.
2、1 问题概述 根据三种不同的置换算法(FIFO、LRU、OPT) ,依据其不同的 算法方式,分别计算该页面引用串在不同算法下的缺页次数与缺页 率,并显示各页面的变化情况。 1.2 内容分析 对于该课程设计中模拟的请求页式存储管理的页面置换过程,只 要掌握其中最基本的三种算法,包括 FIFO、LRU 及 OPT。另外,对 模拟页式存储管理 2 于同一个页面引用串,要求能够调用不同的算法对它进行操作。 2、过程设计、过程设计 2.1 模块设计 在下图的主模块设计图中,只注重描绘了请求页式存储管理的 三种主要算法,未描绘出细节部分。 图 2.1 请求页式存储管理的主模块设计图 2.2 算法原理分析
3、要成功实现算法,首先要知道各个方法是怎么做的,即原理是怎 样的,下面是三种算法的原理。 (1)FIFO 算法:该算法认为刚被调入的页面在最近的将来被访问的 可能性很大, 而在主存中滞留时间最长的页面在最近的将来被访问的 可能性很小。因此。FIFO 算法总是淘汰最先进入主存的页面,即淘 汰在主存中滞留时间最长的页面。 (2)LRU 算法是最近最久未使用,当当前内存中没有正要访问的页 面时,置换出在当前页面中最近最久没有使用的页面。该算法总是选 请求页式存储管理 先 进 先 出 算 法 最 近 最 久 未 用 算 法 最 佳 置 换 算 法 模拟页式存储管理 3 择最近一段时间内最长时间没有被访问
4、过的页面调出。 它认为那些刚 被访问过的页面可能在最近的将来还会经常访问他们, 而那些在较长 时间里未被访问的页面,一般在最近的将来再被访问的可能性较小。 (3)OPT 算法是未来最远出现,当当前内存中没有正要访问的页面 时, 置换出当前页面中在未来的访问页中最远出现的页面或再也不出 现的页面。用该算法选择的被淘汰的页面将是以后永远不再使用,或 者是在将来最长时间内不再被访问的页面, 这样产生的缺页中断次数 将会是最少的。 采用 OPT 算法通常可获得最低的缺页中断率,然而却 需要预测出程序的页面引用串,这是无法预知的, 不可能对程序的运 行过程做出精确的断言,所以说这是一种理想化的算法,无法
5、实现。 但是这个算法可以作为衡量其他算法的标准。 2.3 程序流程图 本次课程设计的主要流程是 3 种置换算法的流程图, 流程图如下 所示: 模拟页式存储管理 4 先进先出算法(FIFO) FIFO 算法流程图 开始 产生指令地址流初始化页表 访问一个指令地址, 计算该地址 所在页的页号 该页在主存? 页表中是否有空白 物理块? FIFO: 置换出最先进来的页面 调入当前所需的页 打印指令地址、它所在的 页号及页表信息 所有指令地址是 否已访问完? 结束 否 是 在 不在 没有 有 模拟页式存储管理 5 最近最少用算法(LRU) LRU 算法流程图 开始 产生指令地址流初始化页表 访问一个指令
6、地址, 计算该地址 所在页的页号 该页在主存? 页表中是否有空白 物理块? LRU: 置换出当前页面中最近 最久没有使用的页面 调入当前所需的页 打印指令地址、它所在的 页号及页表信息 所有指令地址是 否已访问完? 结束 否 是 在 不在 没有 有 模拟页式存储管理 6 最佳置换算法(OPT) OPT 算法流程图 开始 产生指令地址流初始化页表 访问一个指令地址, 计算该地址 所在页的页号 该页在主存? 页表中是否有空白 物理块? OPT: 替换内存中将来不出现 或离当前最远的页面 调入当前所需的页 打印指令地址、它所在的 页号及页表信息 所有指令地址是 否已访问完? 结束 否 是 在 不在 没有 有 模拟页式存储管理 7 三、代码部分 1 模拟页式存储管理 8 模拟页式存储管理 9 2、核心部分 (1) 、先进先出算法(FIFO) 模拟页式存储管理 10 2、最近最少用算法(LRU) 模拟页式存储管理 11 3、最佳置换算法(OPT) 模拟页式存储管理 12 2 2、 主函数 模拟页式存储管理 13 四四、运行截图、运行截图 首先输入 20 个数(个位数) 模拟页式存储管理 1