虚拟内存页面置换算法实验三.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
虚拟内存页面置换算法实验三

软 件 学 院实 验 报 告课程名称: 操作系统实验项目: 虚拟内存页面置换算法实 验 室: 姓 名: 学 号:专业班级: 实验时间:实验成绩评阅教师实验目的及要求通过这次实验,加深对虚拟内存页面置换概念的理解,进一步掌握先进先出FIFO、最佳置换OPI和最近最久未使用LRU页面置换算法的实现方法。结合Linux的内层的分析方法查看内存的分配过程及linux kernel的内存管理机制。实验性质实验性质: 设计性实验学时实验学时: 2学时四、实验环境1.实验环境: C与C++程序设计学习与实验系统2.知识准备:(1)使用Linux的基本命令;(2)了解Linux vmstat、free、top等命令查看linux系统的内存分配情况;(3) 掌握虚拟内存页面置换算法FIFO等基本算法理论。五、实验内容及步骤假设有n个进程分别在T1, … ,Tn时刻到达系统,它们需要的服务时间分别为S1, … ,Sn。分别采用先来先服务FCFS和短作业优先SJF进程调度算法进行调度,计算每个进程的完成时间、周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。通过已知最小物理块数、页面个数、页面访问序列、及采用置换方式可以得出页面置换的缺页次数和缺页率,及每次缺页时物理块中存储。1.输入的形式 int PageOrder[MaxNumber];//页面序列int PageNum,LackNum=0,BlockNum;//页面个数,缺页次数,最小物理块数2. 输出的形式double LackPageRate//缺页率缺页个数每次缺页时物理块中存储 程序所能达到的功能模拟先进先出FIFO、最佳置换OPI和最近最久未使用LRU页面置换算法的工作过程。假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个数为n,页面访问序列为P1, … ,Pn,分别利用不同的页面置换算法调度进程的页面访问序列,给出页面访问序列的置换过程,计算每种算法缺页次数和缺页率。测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。int PageOrder[MaxNumber];//页面序列int PageCount[MaxNumber]={0};//计算内存内数据离下一次出现的距离int PageNum,LackNum=0,BlockNum;//页面个数,缺页次数,最小物理块数double LackPageRate=0;bool found=false; 图 1-1 流程图六、实验数据及结果分析1.详细记录在调试过程中出现的问题及解决方法; 在FIFO和LRU中计算每个页面在物理块中所存在的“时间”时总是出错,后来多次调试语句所处位置和计数方法,终于得出正确结果,并且所有算法都没有输出物理块中发生置换后的物理块中的内容,在老师的提醒下更改程序输出其内容。算法的性能分析(包括基本操作和其它算法的时间复杂度和空间复杂度的分析)及其改进设想; OPI:时间复杂度为O(n^2) 空间复杂度为:O(1) FIFO:时间复杂度为O(n^2) 空间复杂度为:O(1) LRU:时间复杂度为O(n^2) 空间复杂度为:O(1)2.记录实验执行的结果(运行结果截图)。图 1-2 程序运行结果七、实验总结通过这次实验我对先进先出FIFO,最佳置换OPI和最近最久未使用LRU页面置换算法的实现方法。有了更多的了解。在编程过程中我也通过查阅书籍和复习以前的课本,对C++编程语言进行了复习。通过这个实验我也体会到思路的重要性,一个程序如果一开始计划的好,结构设计完善,才可能顺利进行。这次实验模拟出了优先权调度算法,使我更加了解这一算法的调度过程。以前仅限于知道这一知识点,现在居然能用程序来实现这个过程。我相信这将是一个很好的学习方法。我希望以后能够有更多的机会来锻炼自己,通过具体实践来提高自己编程的能力,来进一步掌握和理解在课堂上学到的东西,做到学以致用!总之,这次综合实验是我收益匪浅,是我明白了实际编程和理论知识间的差异,明白了在学习课本的基础上我们还需要很大的实践扩充才能真正的理解并学好这门课程。附录 源程序清单#include iostream.hconst int DataMax=100;const int BlockNum = 10;int DataShow[BlockNum][DataMax]; // 用于存储要显示的数组bool DataShowEnable[BlockNum][DataMax]; // 用于存储数组中的数据是否需要显示//int Data[

文档评论(0)

xjj2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档