网站大量收购独家精品文档,联系QQ:2885784924

实验三页面置换算法.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统实验报告 班级: 姓名: 学号: 实验三:页面置换算法 实验目的 1、熟悉内存分页管理策略。 2、编写OPT、FIFO、LRU,LFU四种置换算法并模拟实现。 3、锻炼知识的运用能力和实践能力。 实验内容 设计主界面,输入一串系列模拟页面请求,实现以下算法: 1) 最佳置换算法(OPT):将以后永不使用的或许是在最长(未来)时间内不再 被访问的页面换出。 2) 先进先出算法(FIFO):淘汰最先进入内存的页面,即选择在内存中驻留 时间最久的页面予以淘汰。 3) 最近最久未使用算法(LRU):淘汰最近最久未被使用的页面。 4) 最不经常使用算法(LFU) 代码及运行结果分析 #include stdio.h #include stdlib.h int mSIZE; int pSIZE; static int memery[10]={0}; static int page[100]={0}; static int temp[100][10]={0}; void FIFO(); void LRU(); void OPT(); void print(unsigned int t); void read(); void mDelay(unsigned int Delay); int main() { int i,k,code; printf(请输入物理块的个数(M=10):); scanf(%d,mSIZE); printf(请输入页面号引用串的个数(P=100):); scanf(%d,pSIZE); puts(请依次输入页面号引用串:); for(i=0;ipSIZE;i++) scanf(%1d,page[i]); read(); do{ puts(输入的页面号引用串为:); for(k=0;k=(pSIZE-1)/20;k++) { for(i=20*k;(ipSIZE)(i20*(k+1));i++) { if(((i+1)%20==0)||(((i+1)%20)(i==pSIZE-1))) printf(%d\n,page[i]); else printf(%d ,page[i]); } } printf(\n); printf(* 请选择页面置换算法:\t\t\t *\n); printf(* *\n); printf(* 1.先进先出(FIFO) 2.最近最久未使用(LRU) *\n); printf(* 3.最佳(OPT) 4.退出 *\n); printf(\n); printf(请选择操作:[ ]\b\b); scanf(%d,code); switch(code) { case 1: FIFO(); break; case 2: LRU(); break; case 3: OPT(); break; case 4: system(cls); exit(0); default: printf(输入错误,请重新输入:); } printf(按任意键重新选择置换算法:); getchar(); }while (code!=4); getchar(); } void read() { int i; for(i=0;i51;i++) printf(\b); for(i=0;i50;i++) { mDelay((pSIZE+mSIZE)/2); printf(); } printf(获取成功,按任意键进入置换算法选择界面:); getchar(); } void mDelay(unsigned int Delay) { unsigned int i; for(;Delay0;Delay--) { for(i=0;i124;i++) { printf( \b); } } } void print(unsigned int t) { int i,j,k,l; int flag; for(k=0;k=(pSIZE-1)/20;k++) { for(i=20*k;(ipSIZE)(i20*(k+1));i++) { if(((i+1)%20==0)||(((i+1)%20)(i==pSIZE-1))) printf(%d\n,page[i]); else printf( %d ,page[i]); } for(j=0;jmSIZE;j++) { for(i=20*k;(imSIZE+20*k)(ipSIZE);i++) { if(i=j) printf( |%d|,t

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档