1、 1 课程设计报告 题 目: 模拟请求页式管理 课程名称: 计算机操作系统 学 院: 信息工程学院 专 业: 计算机科学与技术 班 级: 14 计本(1) 学生姓名: * * * 学 号: 201403031* 指导教师: * * 成 绩: 开课时间: 2016-2017 学年 一 学期 2 模拟请求页式管理 第1章 需求分析 1.1 设计要求 请求页式管理是一种常用的虚拟存储管理技术。本设计通过请求页式存储管 理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页 面置换算法。本实验要求用 Vc或其他高级语言编写和调试。 编写程序实现: (1)先进先出页面置换算法(FIFO)
2、 (2)最近最久未使用 页面置换算法(LRU) 最佳置换页面置换算法(OPT) 设计一个虚拟存储区和 内存工作区,编程序演示以上三种算法的具体实现过程,并计算访问命中率。 1.2 解决方案 首先确定实现语言使用 c#实现图形化界面,后确定要实现哪些功能,比如算 法选择,页面添加,模拟控制。然后确定输出结构以便于程序的测试和验证。将 基本框架建立后再进行编程。编程前进行算法结构分析最后编程实现。 1.3 算法实现原理 1、先进先出置换算法(FIFO) : 发生缺页中断时按照页面进入内存顺序总是淘汰最先进入内存的页面。 2、最近最久未使用置换算法(LRU) : 发生缺页中断时总是淘汰存在内存中最长
3、时间未被使用的页面。 3、最佳置换算法(OPT) : 发生缺页中断时若一个或几个页面将来将不会被调用则按先进先出原则淘汰页 面,若将来都有调用则比较调用时刻选择最远时刻页面淘汰。 4、缺页率:缺页次数占页面调用次数的百分比。 3 第2章 概要设计 2.1 数据设计 常变量:调用页面最大数量(MaxN) ,内存最大页面数(MaxM) 待调用页面数组:page_ddMaxN存放等待调用的页面号 页面数组专用指针 page_p,用于指向 page_dd 数组中正需调入内存的页号 内存块数组:MemeryMaxM,存放内存当前存放的页号 缺页计数器:count,记录缺页次数 内存块状态数组:M1Max
4、N,M2MaxN,M3MaxN,记录每次页面调用结束后内存 各块的状态 缺页记录数组 sMaxN,用于记录页面调用时是否产生缺页中断,初始化为是 2.2 函数设计 1、页面添加函数:void btnAdd_Click(object sender, EventArgs e) 用于实现通过点击按钮实现数据输入。 2、内存初始化函数:init(int a, int b,int m1,intm2,intm3) 参数有页面数组、内存数组、状态数组,采用先进先出算法对内存先进行装满 服务于先进先出页面置换函数和最佳置换函数。 3、输出函数:void display(inta,intm1,intm2,int
5、m3,charc)用于输 出模拟结果,参数有页面数组,内存数组,状态数组,缺页记录数组。再模拟之 后调用。 4、模拟控制函数:void btnmo_Click(object sender, EventArgs e)用于实现 通过单击模拟按钮,根据用户所选算法进行模拟并显示结果。 5、先进先出算法模拟函数: void FIFO(int a, int b,intm1,intm2,intm3,char s)用于实现先 进先出算法模拟,参数有页面数组,内存数组、内存状态记录数组,缺页记录数 组。在模拟函数中调用。 6、最近最久未使用算法模拟函数: void LRU(int a, int b, int
6、m1, int m2, int m3, char s)用于 4 实现最近最久未使用算法模拟,参数有页面数组,内存数组,内存状态记录数组, 缺页记录数组。在模拟函数中被调用。 7、最近最久未使用函数辅助函数:void LUR_I(int a,int e)用于对最近最久 未使用算法中所用辅助数组(记录页面存在时长)进行调整,参数有辅助数组及 需调整的数据下标。在最近最久未使用函数中调用。 8、最佳置换算法模拟函数: void OPT(int a, int b, int m1, int m2, int m3, char s)用于 模拟最佳置换算法。参数有页面数组,内存数组,内存状态记录数组,缺页记录 数组。在模拟函数中被调用。 9、最佳置换算法辅助函数:void OPT_F