设计一个虚拟存储区和内存工作区.docVIP

  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文档。上传文档
查看更多
设计一个虚拟存储区和内存工作区

课程设计任务书 学生姓名: 专业班级: 计网2093班 指导教师: 工作单位: 信息工程系 设计题目:设计一个虚拟存储区和内存工作区 初始条件: Linux操作系统,GCC编译环境 要求完成的主要任务 主要任务: 通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。 设计一个虚拟存储区和内存工作区,并使用下述算法计算访问命中率。 最佳淘汰算法(OPT) 2、先进先出的算法(FIFO) 3、最近最久未使用算法(LRU) 设计程序时先用srand()和rand()函数定义和产生指令序列,然后将指令序列变换成相应的页地址流,并针对不同的算法计算出相应的命中率。 设计报告撰写格式要求: 1设计题目与要求 2 设计思想 3系统结构 4 数据结构的说明和模块的算法流程图 5 使用说明书(即用户手册):内容包含如何登录、退出、读、写等操作说明 6 运行结果和结果分析(其中包括实验的检查结果、程序的运行情况) 7 自我评价与总结 8 附录:程序清单,注意加注释(包括关键字、方法、变量等),在每个模块前加注释; 时间安排 6月 20日 布置课程设计任务;分配题目后,查阅资料、 准备程序; 6月 21 ~6月23 日上机调试程序、书写课程设计报告; 6月24 日 提交课程设计报告及相关文档。 指 导 教 师 签 名: 2011年 6月 18日 系 主 任 签 名: 2011年6月 19日 课程设计报告书 一.设计题目:设计一个虚拟存储区和内存工作区 二.设计要求: 1、设计一个虚拟存储区和内存工作区,并使用下述算法计算访问命中率。 ①最佳淘汰算法(OPT) ②先进先出的算法(FIFO) ③最近最久未使用算法(LRU) 设计程序时先用srand()和rand()函数定义和产生指令序列,然后将指令序列变换成相应的页地址流,并针对不同的算法计算出相应的命中率。 2、所编辑的程序能够在Linux系统中GCC环境下正常运行。 三.设计思想: 先建立三种算法的基本结构,再在主程序中调用,并实现其功能。 最近最久未使用(LRU)置换算法的思路 最近最久未使用置换算法的实质是当需要置换一页时,选择最长时间未被使用的那一页淘汰。为了能检测出那一页长时间未被使用我们可以设置一个计数器oldest2(),把每一次放入固定内存内的序列数做一个统计,通过选择将计数最少的数淘汰出去。 最佳淘汰(OPT)置换算法的思路 最佳算法是当调入一新页而必须先淘汰一旧页,所淘汰的那一页应是以后不再使用的,或者是在最长时间段之后才会用到的页。这就需要我们先要知道所要放入页的内容,然后逐一判断那些页应该在放入内存后可以被淘汰。这个我用oldest()这个函数实现这一筛选功能,先用两个循环对内存中的数与随机序列对比,看有没有相等的数,然后利用计数器oldest2()返回未来最长时间不使用的页面位置。 先进先出(FIFO)置换算法的思路 先进先出算法实际上是选择在主存中居留最久的一页淘汰,即先进入主存的页。可以利用一个查询函数IsInBuf()来判断所要置换的页面与内存中的页面是否有重复,重复不置换,不重复就利用一个赋值语句将旧页置换出来,这里最重要的是页号的操作,可以利用一个控制语句old=(old+1)%(int)B来进行页面的转换。 四.系统结构: 五.数据结构的说明和模块的算法流程图 1.数据结构的说明 作业的页面走向(执行过程中对页面的访问顺序)用数组,页面走向的长度控制以-1为终结符。 页框(作业分得的物理块)在不同置换算法执行之前长度由不同的置换算法其数据结构不同但原则式尽可能使程序的时间复杂度最低。FIFO,采用队列,对于LRU堆栈。 2.模块的算法流程图 2.1 FIFO算法的流程图 2.2 LRU算法的流程图 2.3 OPT算法的流程图 六.使用说明: 1.登录Linux系统的终端使用一下指令 1 cd 目录名(进入你存程序的文件夹) 1.2 gedit 文件名 (打开Linux系统内置的编译器并把文件导入文本区) 1.3回到终端输入gcc 文件名(编译源程序) 1.4再次输入./a.out(运行源程序并得出结果) 1.5得出结果键入exit(退出所有操作) 使用Microsoft Visual C++ 6.0编译运行 2.1直接将编好的文件导入到编译器中 2.2 如图按钮执行编译运行操作 2.3退出直接关闭编译器即可 七.

文档评论(0)

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

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

1亿VIP精品文档

相关文档