




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include #include#include#include#include#define bsize 0#define psize mtypedef struct Page int num; /*记录页面号*/ int time; /*记录调入内存时间*/Page;Page bbsize; /*内存单元数*/int cbsizepsize; /*暂保存内存当前的状态:缓冲区*/int queue100; /*记录调入队列*/ int K; /*调入队列计数变量*/int clear_period=5;int phbbsize=0; /*物理块*/int propsize=0; /*进程号*/int flagbsize=0; /*进程等待次数(存放最久未被使用的进程标志)*/int i=0,j=0,k=0; /*i表示进程序列号,j表示物理块号*/int m=-1,n=-1; /*物理块空闲和进程是否相同判断标志*/int max=-1,maxflag=0; /*标记替换物理块进程下标*/int count=0; /*统计页面缺页次数*/int* build() for(i=0;ipsize;i+) proi=rand()%10+1; printf(%d ,proi); printf(n); return(pro);/*寻找未使用的物理块*/int searchpb() for(j=0;jbsize;j+) if(phbj=0) m=j; return m; break; return -1;/*判断进程是否已经在物理块中*/int searchpro() for(j=0;jbsize;j+) if(phbj=proi) n=j; return j; return -1;/*清空物理块和错误次数*/void empty() for(i=0;ibsize;i+) phbi=0; count=0;void FIFO() for(i=0;ipsize;i+) printf(%d ,proi); printf(nn); for(i=0;ipsize;i+) m=searchpb(); n=searchpro(); for(j=0;jmaxflag) maxflag=flagj; max=j; if(n=-1) /*不存在相同进程*/ if(m!=-1) /*存在空闲物理块 */ phbm=proi; count+; flagm=0; for(j=0;j=m;j+) /*已经进入的flag加1,刚进的为1*/ flagj+; m=-1; else /*不存在空闲物理块*/ phbmax=proi; flagmax=0; for(j=0;jbsize;j+) flagj+; max=-1; /*恢复默认*/ maxflag=0; count+; /*错误数*/ else /*存在相同的进程*/ n=-1; for(j=0;jbsize;j+) printf(%d ,phbj); printf(n); printf(Page fault:%dn,count); printf(Page replacement:%dn,count-bsize); printf(Page default rate:%6.3f,(float)count/psize);/*初始化内存单元、缓冲区*/ void Init(Page *b,int cbsizepsize) for(i=0;ibsize;i+) bi.num=-1; bi.time=bsize-i-1; for(i=0;ibsize;i+) for(j=0;jpsize;j+) cij=-1; /*取得在内存中停留最久的页面,默认状态下为最早调入的页面*/ int GetMax(Page *b) int max=-1; int tag=0; for(i=0;imax) max=bi.time; tag=i; return tag; /*判断页面是否已在内存中*/ int Equation(int fold,Page *b) int i; for(i=0;i=0) /*如果内存中已经存在进程fold*/ bval.time=0; for(i=0;ibsize;i+) if (i!=val) bi.time+; else /*内存中没有进程fold,包括有空物理块的情况*/ K+; val=GetMax(b); bval.num=fold; bval.time=0; for(i=0;ibsize;i+) if(i!=val) bi.time+; void LRU() K=0; Init(b,c); for(j=0;jpsize;j+) Lruu(proj,b); for(i=0;ibsize;i+) cij=bi.num; for(i=0;ibsize;i+) for(j=0;jpsize;j+) if(cij=-1) printf(|%2c ,48); /*48是0,32是空格*/ else printf(|%2d ,cij); printf(|n); printf(nThe number of page default: %6dnPage default rate: %6.3f,K,(float)K/psize);void main() int sel ; do printf(0 exitn); printf(1 creat numbers of processesn); printf(2 FIFOn); printf(3 LRUn); printf(4 NURn); printf(Please choose(0/1/2/3/4):); scanf(%d,&sel); switch(sel) case 1:build();break; case 3:printf(LRUn);LRU();empty();p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消保知识培训竞赛简报课件
- 2025嘉兴市鑫茂物资调剂市场有限责任公司招聘1人模拟试卷及答案详解(新)
- 2025年度河南豫矿资源开发集团有限公司所属企业招聘13人模拟试卷完整答案详解
- 2025湖南资兴市面向本市农村订单定向医学生、基层医疗卫生机构本土化专科层次人才培养医学生考核招聘15人模拟试卷及答案详解(新)
- 2025年甘肃省天水天光半导体有限责任公司招聘18人考前自测高频考点模拟试题及答案详解(全优)
- 2025广西崇左市人民检察院公开招聘机关文员4人模拟试卷及答案详解1套
- 2025贵州遵义市赤水市丹投教育科技有限公司招聘财务人员招聘1人考前自测高频考点模拟试题及答案详解参考
- 2025辽宁铁岭市调兵山市招聘临床医师10人考前自测高频考点模拟试题及答案详解(有一套)
- 涂料专业知识培训课件
- 2025春季新疆石河子大学第一附属医院、石河子大学附属中医医院(兵团中医医院)校园招聘同工同酬52人考前自测高频考点模拟试题及完整答案详解
- 2025广东云浮市检察机关招聘劳动合同制司法辅助人员17人备考考试题库附答案解析
- 人工智能与建筑产业体系智能化升级研究报告
- 工装夹具设计培训课件
- 包覆拉拔法制备铜包铝、铜包钢双金属导线的多维度探究与展望
- 大气的受热过程教学课件
- 2025辐射安全与防护培训考试题库(含参考答案)
- 茶叶农药知识培训课件
- 2024超声法检测混凝土缺陷技术规程
- 学生会竞选无领导小组讨论题库
- 2025年中级注册安全工程师《金属非金属矿山安全实务》考试真题及答案
- 扬州恒春电子CKDY电液执行机构用户手册
评论
0/150
提交评论