实验6虚拟存储管理.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文档。上传文档
查看更多
实验6虚拟存储管理

实验六 虚拟存储管理 实验目的 存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。本实验的目的是通过请求页式管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 实验内容 通过计算不同算法的命中率比较算法的优劣。同时也考虑了用户内存容量对命中率的影 响。页面失效次数为每次访问相应指令时,该指令所对应的页不在内存中的次数。 计算并输出下属算法在不同内存容量下的命中率。 先进先出的算法(FIFO); 最近最少使用算法(LRU); 开 始 生成地址流 输入算法号S 1≤S≤4 形成地址页号 用户内存空间msize=2 Msize≤32 OPT() FIFO() LRU() LFU() Msize加1 S=? 是否用其他算法继续 结 束 N Y 1 2 3 4 Y N 提示出错,重新输入 系统框图 四.页面置换算法程序代码 #includestdio.h #includestring.h #includeiostream.h const int MAXSIZE=1000;//定义页访问流的最大长度 const int MAXQUEUE=3;//定义可用页面数 typedef struct node { int loaded; int hit; }page; page pages[MAXQUEUE]; //定义页面表 int queue[MAXSIZE]; int quantity; //初始化结构函数 void initial() { int i; for(i=0;iMAXQUEUE;i++) { pages[i].loaded=-1; pages[i].hit=0; } for(i=0;iMAXSIZE;i++) { queue[i]=-1; } quantity=0; } //初始化页面函数 void init() { int i; for(i=0;iMAXQUEUE;i++) { pages[i].loaded=-1; pages[i].hit=0; } } //读入页面流 void readData() { FILE *fp; char fname[20]; int i; cout请输入页面流文件名:; cinfname; if((fp=fopen(fname,r))==NULL) { cout错误,文件打不开,请检查文件名; } else { while(!feof(fp)) { fscanf(fp,%d ,queue[quantity]); quantity++; } } cout读入的页访问流:; for(i=0;iquantity;i++) { coutqueue[i] ; } } //FIFO调度算法 void FIFO() { int i,j,p,flag; int absence=0; p=0; coutendlendl; cout先进??出调度算法(FIFO)页面调出流:; for(i=0;iquantity;i++) { flag=0; for(j=0;jMAXQUEUE;j++) { if(pages[j].loaded==queue[i]) { flag=1; } } if(flag==0) { if(absence=MAXQUEUE) { coutpages[p].loaded ; } pages[p].loaded=queue[i]; p=(p+1)%MAXQUEUE; absence++; } } absence-=MAXQUEUE; coutendl总缺页数:absence+MAXQUEUEendl; } //最近最少使用调度算法(LRU) void LRU() { int absence=0; int i,j; int flag; for(i=0;iMAXQUEUE;i++) { pages[i].loaded=queue[i]; } coutendlendl; cout最近最少使用调度算法(LRU)页面调出流:; for(i=MAXQUEUE;iquantity;i++) { flag=-1; for(j=0;jMAXQUEUE;j++) { if(queue[i]==pages[j].loaded) { flag=j; } } //CAUTION pages[0]是队列头 if(flag==-1) { /

文档评论(0)

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

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

1亿VIP精品文档

相关文档