操作系统实验报告五

上传人:飞*** 文档编号:43861351 上传时间:2018-06-07 格式:DOC 页数:11 大小:383.83KB
返回 下载 相关 举报
操作系统实验报告五_第1页
第1页 / 共11页
操作系统实验报告五_第2页
第2页 / 共11页
操作系统实验报告五_第3页
第3页 / 共11页
操作系统实验报告五_第4页
第4页 / 共11页
操作系统实验报告五_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《操作系统实验报告五》由会员分享,可在线阅读,更多相关《操作系统实验报告五(11页珍藏版)》请在金锄头文库上搜索。

1、湖南商学院操作系统实验报告第 1 页 共 11 页1、实验目的、实验目的通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。2、实验要求实验要求1.任意给出一组页面访问顺序(如:7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 )2.分配给该作业一定的物理块(如 3 块、4 块等)3.利用最佳淘汰算法(OPT)、先进先出的算法(FIFO)、最近最久未使用算法(LRU)这三种置换算法模拟页面置换过程并计算其缺页率。3、实验环境、实验环境Windows 8

2、、 visual C+ 6.04、实验内容、实验内容 1)实现原理)实现原理模拟先进先出FIFO、最佳置换OPI和最近最久未使用LRU页面置换算法的工作过程。假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个数为n,页面访问序列为P1, 湖南商学院操作系统实验报告第 2 页 共 11 页 ,Pn,分别利用不同的页面置换算法调度进程的页面访问序列,给出页面访问序列的置换过程。FIFO不对页面进行分类,FIFO按页面到达接口的先后顺序让页面进入队列,同时,FIFO在队列的出口让页面按进队的顺序出队,先进的页面将先出队,后进的页面将后出队。OPI淘汰下次访问距离当前最远的那些

3、页中序号最小的一页。LRU策略淘汰上次使用距离当前最远的页。2)程序结构(流程图)程序结构(流程图)否否 是是输入页面个数及物理个数选择需要操作序号FIFO-1OPT-2LRU-3运算结果输出是否选择退出开始结束湖南商学院操作系统实验报告第 3 页 共 11 页3)数据结构)数据结构int PageOrderMaxNumber;/页面序列int PageNum,LackNum=0,BlockNum;/页面个数,缺页次数,最小物理块数double LackPageRate/缺页率int PageNum,LackNum=0,BlockNum;/页面个数,缺页次数,最小物理块数4)实现步骤)实现步骤

4、打开 visual C+ 6.0,新建文件,将程序输入文件中,并进行运行调试。调试成功运行后按提示输入信息:1)选择序号是否重新输入数据; 2)输入页面个数(如:20); 3)输入物理块数(如:3);4)输入页面序列(如:7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 );5)选择算法序号。5、实验测试及分析、实验测试及分析 (测试截图)(测试截图)湖南商学院操作系统实验报告第 4 页 共 11 页湖南商学院操作系统实验报告第 5 页 共 11 页结果分析:结果分析:从程序模拟实现 FIFO、OPI 和 LRU 三种页面置换算法的结果来看,最佳置换 OPI 是驻

5、留集固定策略中的最优策略,从老师给出的页面序列实现的结果来看,OPI 缺页次数最少,为 9 次,缺页率为45%;而 FIFO 算法的缺页次数最多,为 15 次,缺页率为 75%。通过输入其他页面顺序,也有可能出现三种算法的缺页率为百分之百(该序列运算结果未截图)。由此可见,缺页次数及缺页率的大小不仅与算法有关,也与页面序列有关。6、实验心得体会、实验心得体会通过此次的页面置换算法的程序模拟实现,让自己对该算法有了进一步的理解。如果不深刻理解先进先出 FIFO、最佳置换 OPI 和最近最久未使用 LRU 页面置换算法这三种算法,很容易混淆它们的算法思想。湖南商学院操作系统实验报告第 6 页 共

6、11 页附录:源代码附录:源代码#include #define MaxNumber 100 /*最佳置换算法 */ void OPI(int PageOrderMaxNumber,int PageCountMaxNumber,int PageNum,int LackNum,int BlockNum, double LackPageRate,bool found) int moduleMaxNumber;int sum=0;int i,j,k,m;for(i=0;imax)max=PageCountj;kind=j;modulekind=PageOrderi;LackNum+;for(m=0;

7、 mmax)max=PageCountj;kind=j;for(int k=0;kmax)max=PageCountj;kind=j;for(int k=0;kchioce2; if(chioce2=1) cout PageNum; coutBlockNum; coutPageOrderi; coutchioce3;if(chioce3=1)FIFO(PageOrder,PageCount,PageNum,LackNum, BlockNum, LackPageRate, found);else if(chioce3=2)OPI(PageOrder,PageCount,PageNum,LackNum, BlockNum, LackPageRate, found); elseLRU(PageOrder,PageCount,PageNum,LackNum, BlockNum, LackPageRate, found); coutchioce1;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号