操作系统课程第七次实验报告
姓名 任课教师 实验地点 实验时间 实验课表现 学号 指导教贺辉 师 综合楼B102 2012-9-26 出勤和个人表现Q1(15+15(组长评分)=30分) 实验完成情况Q2(45分(组长与教师评分的加权平均)) 系 贺辉 计算机 评阅教师 贺辉 得分: 得分: 实验 总分 (Q1+Q2+Q3+Q4) 实验编号与实验名称: 实验七、常用页面置换算法模拟实验 实验目的: 通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。 实验内容及要求(详见实验讲义与实验指导书): 要求: 1)要求用你熟悉的程序设计语言编写和调试一个页面置换模拟程序;要求在主函数中测试。 2)实验报告中必须包括:设计思想、数据定义(包括详细说明)、处理流程(详细算法描述和算法流程图)、源代码、运行结果、体会等部分。 3)必须模拟本实验内容中提到的算法中的至少2种页面置换算法。 4) 比较不同页面置换算法的效率 内容:编写一个程序,使用以下页面置换算法中的某2种分别模拟一个分页系统,并统计同一个页面访问序列情况下不同页面置换算法引发的缺页中断次数。 1、第二次机会算法(Second Chance) 2、最近最少使用算法(Least Recently Used,LRU ) 3、最不常用算法(Not Frequently Used,NFU) 4、最近未使用算法(Not Recently Used ,NRU) 5、时钟页面置换算法 6、老化算法(aging) 页框的数量固定为4,虚拟页面数为8。实验输入为访问页面序列,比如0,1 ,3 ,2,7,1
实验用到的软件(:) DevC++,Visio 实验内容及关键步骤(代码)Q3(15分) 流程图: 得分: 按算法不同淘汰一页面 置缺页标志flag为’*’ 是 输入页面访问序列 取访问的页号 查页表 否 是否缺页? 调入所访问的页面
FIFO算法流程图 LRU算法流程图: 函数关系解释图:
主函数,入口designBy()01作者信息显示Main()用FIFO算法实现1FIFO()1用LRU算法实现LRUEXIT()退出2实现结果: PRINT()2显示内存页框每次置换结果 图1
图2 代码: #include #define PROESS_SIZE 8 /*页面号引用串个数*/#include printf(\" | |\"); } for(i=mSIZE+20*k;(i 实验过程中遇到的问题解决办法与实验体会Q4(需手写,10得分: 分) 1、在FIFO算法可以很容易用数组实现,而LRU算法可以用数组实现,不过用结构体会更明显简单。结构体成员变量可以记录页号进入的时间,和最近使用的记录。相对比数组更容易理解和实现。 2:首先,FIFO(先进先出)算法和LRU(最近未使用算法)两者之间,FIFO算法明显会比LRU容易理解,而且比LRU算法较容易实现,但在性能方面,LRU的确在优化方面做的比较理想。再且在考虑页框和页表号之间的问题用代码可以容易模拟,但是真是在物理内存块中是如何实现,那确实是很难以理解,需要真正理解到内存内部的知识才知道这两个算法是怎么实现的。 评阅教师特殊评语: 评阅教师: 日 期: 因篇幅问题不能全部显示,请点此查看更多更全内容