操作统实验_面置换算法模拟.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作统实验_面置换算法模拟

学 生 实 验 报 告 姓名: 年级专业班级 学号 成绩 课程名称 操作系统 实验名称 实验3 请求分页系统的页面置换算法 实验类型 验证 设计 综合 创新 【实验目的、要求】 1.通过编程实现请求分页存储管理系统的Optimal、FIFO、LRU调度算法,使学生掌握计算机虚拟存储管理中有关缺页处理方法等内容,巩固有关虚拟存储管理的知识。2.了解Windows2000/XP中内存管理机制,掌握页式虚拟存储技术。3.理解内存分配原理,特别是以页面为单位的虚拟内存分配方法。 【实验内容】 在Windows XP或Windows 2000等操作系统环境下,使用VC、VB、Delphi、java或C等编程语言,实现请求分页存储管理系统的Optimal、FIFO、LRU调度算法。 【实验环境】(含主要设计设备、器材、软件等) 计算机 C语言编程软件 【实验步骤、过程】(含原理图、流程图 3.编辑源程序,关键代码如下。 (1)先进先出页面置换算法。 #includestdio.h void main() { int i,n,t,k=3,a[100]; scanf(%d,n); for(i=0;in;i++) scanf(%d,a[i]); for(i=3;in;i++) if(a[i]!=a[0]a[i]!=a[1]a[i]!=a[2]) //该页面在内存中,不需要置换。 { t=a[i]; a[i]=a[k%3]; //通过对k值对3取余的值来确定需要置换的当前页面。 a[k%3]=t; k++; //仅当发生了页面置换时,k的值才发生改变。 printf(%d %d %d\n,a[0],a[1],a[2]); } else { printf(%d %d %d\n,a[0],a[1],a[2]); } } (2)最佳置换算法 #includestdio.h void main() { int i,j,,n,a[100]; int c1,c2,c3; // 标志该页面再次被访问时在引用串中的位置 int p,k,r; printf(请输入页面数:\n); scanf(%d,n); printf(请输入页面号引用串:\n); for(i=0;in;i++) scanf(%d,a[i]); for(j=3;jn;j++) { if((a[j]!=a[0])(a[j]!=a[1])(a[j]!=a[2])) //页面在内存不发生置换! { for(p=j;pn;p++) if(a[0]==a[p]) { c1=p; break; //跳出循环,直接置c1=n! } else c1=n; //标志该页面再次被访问时在引用串中的位置!若该页面不会再次被访问,则将c1置为最大n! for(k=j;kn;k++) if(a[1]==a[k]) { c2=k; break; } else c2=n; for(r=j;rn;r++) if(a[2]==a[r]) { c3=r; break; } else c3=n; //通过比较c1,c2,c3的大小确定最长时间内不再访问的页面! if((c1c2)(c1c3)||(c1==c3)||(c1==c2)) //当前a[0]页面未来最长时间不再访问! { t=a[j]; a[j]=a[0]; a[0]=t; //把当前访问页面和最佳页面交换! printf(%d %d %d\n,a[0],a[1],a[2]); } if((c2c1)(c2c3)||(c2==c3)) //当前a[1]页面未来最长时间不再访问! { t=a[j]; a[j]=a[1]; a[1]=t; printf(%d %d %d\n,a[0],a[1],a[2]); } if(

文档评论(0)

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

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

1亿VIP精品文档

相关文档