




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
先进先出算法C+-试验程序: #include#include#define m 5 /m表示页数#define n 3 /n表示物理块数float interrupt=0.; /产生缺页中断的次数int k=0; /指向最先进入内存的页,即被淘汰的页int PageTablem; /定义页表,总共m页,数组中数值是状态位 =1表示该页在内存中,=0表示不在内存中,默认处置为0int Blockn; /定义物理块,总共n个,数组中数值表示对应物理块中装入的页的编号int process20; /进程访问序列int number=1; /用于标志访问次数void Visit(int); /访问函数void main (void) int input; cout某进程共有m页,请输入进程访问序列(范围:1-minput; for(int length=0;input!=0;length+) /将输入序列存入process数组,长度为length processlength=input; cininput; for(int j=0;jlength;j+) Visit(processj); /依次访问页processj cout共length次访问,产生interrupt次缺页中断,缺页率为 interrupt/lengthn;void Visit(int x) int i,j; coutsetw(2)number: 访问页x ; /第number次访问,访问页x for(i=0;in;i+) if(Blocki=0) /访问页x时没有命中,且内存未装满,产生缺页中断,直接调入访问页 interrupt+; /缺页中断次数加1 PageTablex-1=1; /修改状态位 Blocki=x; /页x调入物理块 cout缺页中断 内存未满调入页x 物理块内的页为 ; for(j=0;j=i;j+)coutBlockj ; /输出物理块内的页号 coutn; break; if(PageTablex-1=1) /访问页x时命中 cout命中 物理块内的页为 ; for(j=0;jn & Blockj!=0;j+)coutBlockj ; /输出物理块内的页号 coutn; break; if(i=n) /访问页x时内存已装满,且没有命中,产生缺页中断,调入该页至内存,淘汰最先进入的页 cout缺页中断 淘汰页Blockk 调入页x 物理块内的页为 ; interrupt+; /缺页中断次数加1 PageTableBlockk-1=0; /页Blockk被淘汰,状态位修改为 0 Blockk=x; /页x调入物理块 PageTablex-1=1; /页x状态位修改为 1 k=(k+1)%n; /修改下次被淘汰页指针 for(j=0;jn;j+)coutBlockj ; /输出物理块内的页号 coutn; number+; /访问次数加1C-/6528113.htmlmain () int cunchufangwenyemian4;/*存储访问的页面*/ int cunchujisuanguocheng34;/*存储计算过程;*/ int cunchushifoumingzhong4;/*存储是否被命中*/ int lie,hang;/*循环变量列,行*/ int shifoumingzhong;/*在前一列的位置,没有则为0;*/ int wenmenyemiangeshu=4;/*访问页面的个数*/ /*第一步,初始化*/ /*输入访问的页面,存到存储访问的页面的数组中*/ for (lie=0;lie4;lie+) printf(n请输入第%d个页面:,lie); scanf(%d,&cunchufangwenyemianlie); /*初始化计算过程数组*/ for (lie=0;lie4;lie+) for(hang=0;hang3;hang+) cunchujisuanguochenghanglie=-1; /*初始化是否没有命中的数组*/ for (lie=0;lie4;lie+) cunchushifoumingzhonglie=0; /*第二步,计算*/ /*察看是否命中*/ for (wenmenyemiangeshu=0;wenmenyemiangeshu4;wenmenyemiangeshu+) /*对于某一列进行处理*/ lie=wenmenyemiangeshu; if (lie=0) /*如果为第一列*/ cunchujisuanguocheng0lie= cunchufangwenyemianlie; /*将页面落下来*/ cunchushifoumingzhong0=0; /*是否命中为0,不命中*/ else /*如果不为第一列*/ shifoumingzhong=0; /*假设没命中*/ for(hang=0;hang3;hang+) if ( cunchujisuanguochenghanglie-1= cunchufangwenyemianlie) shifoumingzhong=hang+1;/*如果相同,则是否命中为命中的位置*/ cunchushifoumingzhonglie=shifoumingzhong;/*存储命中位置*/ if (lie!=0) if (shifoumingzhong!=0)/*是否命中 */ /*如果命中,则不变*/ for(hang=0;hang0;hang-) cunchujisuanguochenghanglie= cunchujisuanguochenghang-1lie-1;/*将上一列逐个下移复制过来*/ cunchujisuanguocheng0lie=cunchufangwenyemianlie;/*最上面的等于新进来的*/ /*第三步,输出*/ /*输出访问序列*/ for (lie=0;lie4;lie+) printf(%d ,cunchufangwenyemianlie); printf(n); /*输出计算过程*/ for (hang=0;hang3;hang+) for(lie=0;lie4;lie+) printf(%d ,cunchujisuanguochenghanglie); printf(n); /*输出是否命中*/ for (lie=0;lie4;lie+) printf(%d ,cunchushifoumingzhonglie); 改:-main () int cunchufangwenyemian4; int cunchujisuanguocheng34; int cunchushifoumingzhong4; int lie,hang; int shifoumingzhong; int wenmenyemiangeshu=4; for (lie=0;lie4;lie+) printf(ninput%d:,lie); scanf(%d,&cunchufangwenyemianlie); for (lie=0;lie4;lie+) for(hang=0;hang3;hang+) cunchujisuanguochenghanglie=-1; for (lie=0;lie4;lie+) cunchushifoumingzhonglie=0; for (wenmenyemiangeshu=0;wenmenyemiangeshu4;wenmenyemiangeshu+) lie=wenmenyemiangeshu; if (lie=0) cunchujisuanguocheng0lie= cunchufangwenyemianlie; cunchushifoumingzhong0=0; else shifoumingzhong=0; for(hang=0;hang3;hang+) if ( cunchujisuanguochenghanglie-1= cunchufangwenyemianlie) shifoumingzhong=hang+1; cunchushifoumingzhonglie=shifoumingzhong; if (lie!=0) if (shifoumingzhong!=0) for(hang=0;hang0;hang-) cunchujisuanguochenghanglie= cunchujisuanguochenghang-1lie-1; cunchujisuanguocheng0lie=cunchufangwenyemianlie; for (lie=0;lie4;lie+) printf(%d ,cu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出炉工安全培训课件
- 社区工作者面试题及答案大全-社区工作者结构化面试试题及答案
- 2025简化版私有房产买卖合同样本
- 2025二手物流运输车辆买卖合同
- 2025年合同避税与减轻行政风险的策略研究
- 2025年甲地土地使用权转让合同书标准范本
- 最后一次演讲语文课件
- 2025安置地皮转让协议书写【安置地转让合同】
- 八钢安全教育培训课件
- 社区高危人口管理办法
- 2024年5月12日河北省省直事业单位招聘(综合类)工作人员《职业能力测验》试题真题试卷答案解析
- 接警调度面试题及答案
- 课题开题报告:专精特新企业新质生产力的动态演化、形成机理与实践路径研究
- 2025新人教版语文七年级上册(全册)教案教学设计(有教学反思)
- 马克思主义政治经济学研究范式
- 2025年新人教版八年级下册物理全册教案
- 开学第一课的体育教案设计
- 2025年度高科技企业派遣研发人员合同范本
- 《汉字造字法》课件
- 村两委换届选举培训
- 2024秋新人教版物理8年级上册教学课件 1.1 长度和时间的测量
评论
0/150
提交评论