当前位置:首页 > 请求页式管理缺页中断模拟设计--FIFO、OPT
武汉理工大学《计算机操作系统教程》课程设计报告书
{ }
得到最大权值所在的物理块,即是下次需要替换的页
for(从该页后面的那个页开始计算权值)
权值累加;
替换该页,加入内存
}
if(该页不在内存,并且内存物理块没有满) {
缺页累加 直接加载进内存
}
}
}
输出缺页次、缺页率和淘汰页号次序。
3.2 main函数
利用页式管理control类建立一个对象,来实现FIFO、OPT。
4使用说明及运行分析
4.1使用说明及运行
运行程序根据提示输入调入页面数和可使用的物理块数,再选择是用户输入还
是计算机随机产生页面号。观察页面调度过程,处理完各页面后,统计并显示缺页次数、缺页率和淘汰页面号次序。
4.2测试实例和运行结果
4.2.1 FIFO算法
输入给定的页面数:10
输入给作业分配内存的物理块数:3 随机生成页面请求序列,如图2: 5 7 3 8 8 0 5 4 5 2
8
8
武汉理工大学《计算机操作系统教程》课程设计报告书
图2
运行结果如图3 图3
4.2.2 OPT算法 输入给定的页面数:10
输入给作业分配内存的物理块数:3 随机生成页面请求序列,如图4: 7 8 2 6 7 8 1 5 6 5
图4
9
9
武汉理工大学《计算机操作系统教程》课程设计报告书
运行结果如图5 图5
4.3结论与分析
从运行结果看出程序能满足模型设计的要求,提示用户对请求序列的大小和可用
内存数量进行限制,并提示用户输入请求序列号,或系统随机生成序列,按照不同的替换算法处理并且显示请求页面的调入和替换情况。通过以上运行,比较各种算法的缺页次数和缺页率,可以看出OPT替换算法具有最小的缺页率。虽理论上最优,但是实际却无法实现该算法。
5自我评价与总结
在完成了模拟系统的设计和实现后,觉得自己确实获益匪浅。
首先,值得肯定的是:能够一开始就清晰分析了程序的设计流程及实现要求与原理,利用流程图,较好地理解了请求分页的工作流程;俩个主要算法设计较合理,实现容易;结果显示清楚,能较好的反映各请求页面的存在和替换信息。此外还借助C++语言的类class封装的方法将页式管理整个操作封装起来,容易补充,数据更安全,有益于继承,使功能更强大。
然而,设计不足的地方也是存在的:模拟系统中,用的是一个数组(数据分配连续)来模拟内存空间而实际系统请求分页存储管理时,所分配的内存是不连续的,或许可能用链
10
10
武汉理工大学《计算机操作系统教程》课程设计报告书
表的形式可以改进;另外,在设计OPT算法时,语句嵌套太多,不利于程序的阅读,而且参数和标志的变量的设计不太合理,也加深了程序不利于阅读。最后,没能实现内存很直观的调度过程的呈现。
其次,在设计过程中,为了较好地完成设计,也参阅和回忆结合了其他相关知识,操作系统相关知识为主要架构,高级语言c++知识为工具。此过程的学习,丰富和巩固了操作系统的理论知识,对课堂上不明确和不懂的知识,如请求分页的工作流程,都得到了很好补充学习,同时也增加了c++语言本身的应用能力,极大提高了自身学习该门语言的热情。懂得了编译、调试过程中错误的判断与矫正,积累了不少经验。
最后,个人认为课程设计的范围还可以放的更广些,例如就实现内存页式(或段式)的管理,可以一起包含些内容,如地址的转换,空间的分配与回收,和虚存调度等,这样可以更概括的,更有逻辑,更全面的加深对计算机各个逻辑块的工作原理。
11
11
共分享92篇相关文档