计算机系统结构课程设计FIFO.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文档。上传文档
查看更多
计算机系统结构课程设计FIFO

目 录 1、设计的目的 2 2、设计要求 2 3、主要仪器设备 2 4、设计内容 2 4.1 介绍 2 4.2 总体设计 2 4.3 详细设计 4 4.4 结果测试 8 5、总结 10 6、参考文献 10 虚拟存储器页面替换算法的实现 1、设计的目的 提高编写高级语言的能力,并通过对内存页面置换算法的设计,深入理解虚拟存储管理的原理。 2、设计要求 对一种页面替换算法的实现。 3、主要仪器设备(实验用的软硬件环境) PC机一台,win7操作系统,vs2008集成编程软件 4、设计内容 4.1 介绍 FIFO是最早出现的置换算法,该算法中是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针成为替换指针,使它总是指向最老的页面。虽然它不是一个最好的算法的,但是它简单易于实现,这里就对它进行简单的模拟实现。 4.2 总体设计 4.2.1初始化: 设定物理块数,并且输入一个页面号串,作为进行FIFO算法的初始值。由void init()函数来实现。 4.2.2物理块是否空闲 在确定了物理块数之后,依次对物理块存入页面。首先应检查此时的物理块是否是空闲,如果是则直接将页面存入此位置。如果不空闲,则继续往下查找。由int find_space()函数来实现。 4.2.3页面是否重复 页面存入物理块之前必须检查是否该页面以存在,如果存在则不需要进行替换。如果不存在,则替换新的页面。由find_exist函数来实现。 4.2.4应被替换的位置 通过Timer的计数来确定最先进入,即在物理块内停留最久的页面,这个页面的位置就是即将进行页面替换的位置,新的一个页面就存入此处。由find_replace函数来实现。 4.2.5计算缺页数和缺页率 定义了变量sum,通过查找物理块被替换的位置,以及被替换的情况来计算出缺页数。缺页率则等于缺页数除以总页面数。 4.2.6显示输出转换算法 将算法的计算结果显示输出,由display函数来实现。 4.2.7 FIFO算法的实现 算法的核心,通过调用find_space(), find_exist(int curpage) ,find_replace()三个函数来实现算法。 4.3 详细设计 4.3.1程序流程图 4.3.2、定义页面的属性 1)struct page { int content;//页面号 int timer;//被访问标记 }; 2) 定义一个物理块(其中_bsize输入的物理块数大小):page block[_bsize]; 3) 定义一个页面号串(Psize==20):page page[20]; 4) int sum:用来求缺页总次数 5) int _bsize=0:用来输入物理块数 6) int _string[20] :用来存储输入的页面号 4.3.3、代码详细注释: #include iostream #include string using namespace std; struct page { int content;//页面号 int timer;// 标记被访问的时间 }; page block[100];//物理块 page page[20];//页面号串 int sum; int _bsize=0; int _string[20]; void init() //初始化 { cout请输入物理块数(1-5):; cin_bsize; cout请输入页面号串(0-7,用空格隔开):; for(int i=0; i_bsize; i++) { block[i].content = -1; block[i].timer = 0; } for(i=0; i20; i++) { cin_string[i]; page[i].content = _string[i]; page[i].timer = 0; } } int find_space() //查找是否有空闲内存 { for(int i=0; i_bsize; i++) if(block[i].content == -1) return i;//找到空闲内存,返回BLOCK中位置 return -1; } int find_exist(int curpage) //查找内存中是否有该页面 { for(int i=0; i_bsize; i++) if(block[i].content == page[curpage].content) return i;//找到内存中有该页面,返回BLOCK中位置 return -1

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档