




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验原理:在内存运行过程中,若其所要访问的页面不在内存而需要把他们调入内存,但内存已经没有空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据送磁盘的对换区中。但应将那个页面调出,需根据一定的算法来确定。通常,把选择换出页面的算法成为页面置换算法。置换算法的好坏,将直接影响到系统的性能。一个好的页面置换算法,应具有较低的页面更换频率。从理论上讲,应将那些以后不再会访问的页面置换出,或者把那些在较长时间内不会在访问的页面调出。目前存在着许多种置换算法(如FIFO,OPT,LRU),他们都试图更接近理论上的目标。实验目的:1熟悉FIFO,OPT和LRU算法2比较三种算法的性能优劣实验内容:写出FIFO,OPT和LRU算法的程序代码,并比较它们的算法性能。实验步骤:代码如下:#include #define M 4 /物理页数#define N 20/需要调入的页数typedef struct pageint num;int time;Page;/物理页项,包括调入的页号和时间 Page mmM; /4个物理页int queue120,queue220,queue320;/记录置换的页int K=0,S=0,T=0;/置换页数组的标识int pos=0;/记录存在最长时间项/初始化内存页表项及存储内存情况的空间void INIT()int i;for(i=0;iM;i+)mmi.num =-1;mmi.time =0;/取得内存中存在时间最久的位置int GetMax()int max=-1;int i;for(i=0;i max)max=mmi.time ;pos=i;return pos;/检查最长时间不使用页面 int longesttime(int fold)int i;int max=-1;for(i=fold;iN;i+)if(mm0.num!=i)mm0.time+;if(mm1.num!=i)mm1.time+;if(mm2.num!=i)mm2.time+;if(mm3.num!=i)mm3.time+;for(i=0;imax)max=mmi.time;pos=i;return pos;/检查某页是否在内存int Equation(int fold)int i;for(i=0;iM;i+)if(mmi.num = fold)return i;return -1;/检查物理内存是否已满,-1表满,其他不满int Check()int i;for(i=0;iM;i+)if(mmi.num = -1)return i;return -1;/先进先出void FIFO(int fold)int i;int a,b,c;a=Equation(fold);/页已存在if(a != -1)/页不存在elseb=Check();/内存还有空闲if(b != -1)mmb.num = fold;/内存已满,需要置换else c=GetMax();mmc.num = fold;mmc.time = 0;queue1K+=fold;for(i=0;iM;i+)if(mmi.num != -1)mmi.time +;void OPT(int fold)int a,b,c;a=Equation(fold);if(a = -1)/页不在内存b=Check();/内存还有空闲if(b != -1)mmb.num = fold;/内存已满,需要置换elsec=longesttime(fold);mmc.num = fold;mmc.time = 0; queue3T+=fold;void LRU(int fold)int i;int a,b;int p;a=Equation(fold);if(a != -1)/页已在内存/把此项移动到链表最后一项if(a=3)/此项已经在最后,不需要做任何改动return;elsep=Equation(-1);if(p=-1)/链表是满的for(;a3;a+)mma.num=mma+1.num;mm3.num=fold;else if(p=3)/链表不满for(;ap-1;a+)mma.num=mma+1.num;mma.num=fold;else b=Check();if(b!=-1)/不满mmb.num=fold;elsefor(i=0;i3;i+)mmi.num=mmi+1.num;mm3.num=fold;queue2S+=fold;void main()int AN,BN;int i;INIT();printf(请依次输入%d个页面号:n,N);for(i=0;iN;i+)scanf(%d,&Ai);/FIFOfor(i=0;iN;i+)Bi=Ai;for(i=0;iN;i+)FIFO( Bi );printf(FIFO的);printf(调入队列为:);for(i=0;iK;i+)printf(%3d,queue1i);printf(n缺页次数为:%6dn缺页率:%16.6fnn,K,(float)K/N);/LRUINIT();for(i=0;iN;i+)Bi=Ai;for(i=0;iN;i+)LRU( Bi );printf(LRU的);printf(调入队列为:);for(i=0;iS;i+)printf(%3d,queue2i);printf(n缺页次数为:%6dn缺页率:%16.6fnn,S,(float)S/N);/OPTINIT();for(i=0;iN;i+)Bi=Ai;for(i=0;i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 林业无人机巡检创新创业项目商业计划书
- 海洋主题民宿创新创业项目商业计划书
- 水果池塘养殖创新创业项目商业计划书
- 橡胶体育器材创新创业项目商业计划书
- 2025招标委托合同范本范文
- 2025年乡村民俗旅游保险合同范本
- 2025【合同范本】旅客运输合同
- Unit 4 colors教学设计小学英语一年级上册北师大版(一起)
- 9.2.2 用坐标表示平移 第2课时 说课稿 人教版数学七年级下册
- 2025年江苏省无锡市社会工作者职业资格社会工作综合能力(初级)真题含答案
- 鄂托克高新技术产业开发区固废处理场建设项目环评报告书
- 精准分析分离与鉴定技术知到智慧树章节测试课后答案2024年秋浙江中医药大学
- 老年焦虑障碍课件
- 产科护理个案分享案例
- DB31-T 1540-2025 针刀技术操作规范
- 2024-2025学年黑龙江省1月普通高中学业水平合格性考试数学试卷(含答案)
- 招商转正工作总结
- 公路工程全套资料表格
- QC/T 1210-2024汽车防夹系统
- 金属非金属矿山双重预防机制建设评定指南 第4部分:尾矿库
- 北师大版七年级上册数学期中考试试卷带答案
评论
0/150
提交评论