2022年操作系统页面置换算法 .pdf

上传人:Q****o 文档编号:25942812 上传时间:2022-07-14 格式:PDF 页数:4 大小:95.32KB
返回 下载 相关 举报
2022年操作系统页面置换算法 .pdf_第1页
第1页 / 共4页
2022年操作系统页面置换算法 .pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2022年操作系统页面置换算法 .pdf》由会员分享,可在线阅读,更多相关《2022年操作系统页面置换算法 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验代码:#include #define M 4 /物理页数#define N 20 /需要调入的页数typedef struct page int 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 GetMa

2、x() 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; 名师

3、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - /检查某页是否在内存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; /先进先出

4、void FIFO(int fold) int i; int a,b,c; a=Equation(fold); /页已存在if(a != -1) /页不存在else b=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 =

5、 -1)/ 页不在内存b=Check(); /内存还有空闲if(b != -1) mmb.num = fold; /内存已满,需要置换名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - else c=longesttime(fold); mmc.num = fold; mmc.time = 0; queue3T+=fold; void LRU(int fold) int i; int a,b; int p; a=Equation(f

6、old); if(a != -1)/ 页已在内存 /把此项移动到链表最后一项if(a=3)/ 此项已经在最后,不需要做任何改动return; else p=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; else for(i=0;i3;i+) mmi.num=mmi+1.num;

7、 mm3.num=fold; queue2S+=fold; void main() int AN,BN; int i; INIT(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - printf( 请依次输入 %d 个页面号: n,N); for(i=0;iN;i+) scanf(%d,&Ai); for(i=0;iN;i+) Bi=Ai; for(i=0;iN;i+) FIFO( Bi ); printf(FIFO的); p

8、rintf( 调入队列为: ); for(i=0;iK;i+) printf(%3d,queue1i); printf(n 缺页次数为: %6dn 缺页率: %16.6fnn,K,(float)K/N); INIT(); 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); INIT(); for(i=0;iN;i+) Bi=Ai; for(i=0;iN;i+) OPT( Bi ); printf(OPT 的); printf( 调入队列为: ); for(i=0;iT;i+) printf(%3d,queue3i); printf(n 缺页次数为: %6dn 缺页率: %16.6fnn,T,(float)T/N); 实验结果:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁