存储管理算法实验报告-计算机操作系统教程(第三版).docVIP

存储管理算法实验报告-计算机操作系统教程(第三版).doc

  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)页面调度算法处理缺页中断或用最近最少用(LRU)页面调度算法处理缺页中断的程序。 四、示例程序源代码 #include stdio.h #define blockLength 128 typedef enum {NO=0,YES}FLAG; typedef struct pagetable { int pageNumber; FLAG flag; int memoryBlock; int place; }PAGETAB; typedef struct job{ int pageNumber; int unitNumber; }JOB; PAGETAB pageTAB[7]={ 0,YES,5,11, 1,YES,8,12, 2,YES,9,13, 3,YES,1,21, 4,NO,-1,22, 5,NO,-1,23, 6,NO,-1,121 }; JOB work[12] = {0,70,1,50,2,15,3,21,0,56,6,40,4,53,5,23,1,37,2,78,4,1,6,84}; int main(int argc, char* argv[]) { //first init page table // and work list // look for the work list and pick one to fix the page table for(int i=0; i12;i++) { printf(Instruction sequence :%d\n,i+1); int j = work[i].pageNumber; printf(The page %d is in the memory? %s!\n,j,(pageTAB[j].flag == YES)?YES:NO); if(pageTAB[j].flag == YES) { int absoluteAddress = pageTAB[j].memoryBlock*blockLength+work[i].unitNumber; printf(Instruction absolute address:%d\n,absoluteAddress); } else { printf(missing page interrupt, page fault interrupt!\n); } } return 0; } 存储器管理(二) 一、实验目的: 掌握分页式存储管理的基本概念和实现方法。要求编写一个模拟的分页式管理程序,并能对分页式存储的页面置换算法进行编写和计算各个算法的缺页率。 二、程序设计: 假定一个能够存放M个页面的内存,当发生缺页时,调入一个页面,通过LRU算法求出应该置换出的页面号。输入一连串的页面号,程序自动选择调出的页面并计算缺页率。 设计页面置换算法,这里采用最近最久未使用置换算法LRU。LRU算法的实现要归功于一个8位的寄存器的实现。 三、算法说明: 执行程序时,当主存没有可用页面时,为了选择淘汰主存中的哪一页面,腾出1个空闲块以便存放新调入的页面。淘汰哪个页面的首要问题是选择何种置换算法。该程序采用LRU方法选择,依置换策略选择一个可置换的页面并计算它们的缺页率以便比较。 四、源程序: #define M 3 #includemath.h #includestdio.h int reg[2][M]; int count; int num; int N; /********初始化函数,数组reg[0][i]存放页面号,初始化为-1,reg[1][i]当作寄存器,初始化为0*********/ void init(){ int i; count=0;num=0; N=pow(2,7); /********二进制*********/ for(i=0;iM;i++){ reg[0][i]=-1; reg[1][i]=0;

文档评论(0)

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

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

1亿VIP精品文档

相关文档