1、 1 操 作 系 统操 作 系 统 课 程 设 计 报 告课 程 设 计 报 告 专业专业 网络工程专业网络工程专业 学生姓名学生姓名 班级班级 学号学号 指导教师指导教师 完成日期完成日期 2012 年年 2 月月 22 日日 计 算 机 科 学 与 技 术 学 院计 算 机 科 学 与 技 术 学 院 2 目 录目 录 一、设计目的一、设计目的 3 二、设计内容二、设计内容 3 (1)概述)概述. 3 (2)设计原理)设计原理. 3 (3)详细设计及编码)详细设计及编码 4 (4)运行结果分析)运行结果分析 12 (5)设计小结)设计小结. 15 (6)参考文献)参考文献. 16 3 题
2、目 :题 目 : 页面置换算法页面置换算法的模拟实现一的模拟实现一 一、一、设计目的设计目的 本课程设计是学习完“操作系统原理”课程后进行的一次全面的综合训练, 通过课程设计,更好地掌握操作系统的原理及实现方法,加深对操作系统基础理 论和重要算法的理解,加强学生的动手能力。增加对 linux 系统的认识和基本的 命令语句。 二、二、设计内容设计内容 (1)概述)概述 设计一个虚拟存储区和内存工作区,编程序演示下述算法的具体实现过程, 并计算访问命中率。用 C 语言实现,要求设计主界面以灵活选择某算法,且以下 算法都要实现 1、先进先出算法(FIFO) ; 2、最近最久未使用算法(LRU) (2
3、)设计原理)设计原理 存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用 的虚拟存储管理技术。 本实验的目的是通过请求页式管理中页面置换算法模 拟设计, 了解虚拟存储技术的特点, 掌握请求页式存储管理的页面置换算法。 通过计算不同算法的命中率比较算法的优劣。同时也考虑了用户内存容 量对命中率的影响。页面失效次数为每次访问相应指令时,该指令所对应的 页不在内存中的次数。 1、先进先出算法(FIFO) ;如果内存中含有该页面则不用淘汰页面。而 内存中不存在该页面先进先出的算法主要是先进入栈的先后进行叶面淘汰算 法,及通过计入页面失效的次数而计算出命中率。 页地址流长度 页面失效次数 命
4、中率 1 4 2、最近最久未使用算法(LRU) ;如果内存中含有该页面则不用淘汰页 面。 而内存中不存在该页面最近最久未被使用时在同一时间内优先淘汰在内 存中最近最久未被使用的页面淘汰掉。 通过计入页面失效的次数而计算出命 中率。 (3)详细设计)详细设计及编码及编码 一、实现该功能的程序流程图如下: 页面置换算法的中流程图: 开 始 随机生成 指令序 产生页面地址流 S319 结 束 否 是 FIFO 页面置换算法 LRU 页面置换算法 结 束 5 1、 FIFO 页面置换算法的流程图: 2、LRU 页面置换算法 初始化内存页面 计算结果 FIFO 算 法 页面是否失 加入新页面,缺页次数加 1 是 输出结果 否 删除最先进的一页 初始化内存页面 计算结果 LRU 页面 是否失效 加入新页面,缺页次数加 1, 是 输出结果 否 删除 time 最大的页面, 未被访问 time 加 1 时间time为0 6 二、先进先出(FIFO)和最近最久未使用算法(LRU)的页面置换算法代码如下: #include #include #includ