版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include<stdio.h>#include<stdlib.h>#include<math.h>#include<time.h>#defineaddressnum32FILE*fp 。intexchange(int&a,int&b>{intt 。t=a。a=b。b=t。return0
。}intProduct_Address(int(&address>[100]>{// 产生含50%地随机数值在 之间地地址流;//intaddress[addressnum]={0} 。inti
。srand(time(NULL>>
。for(i=0 。i<addressnum。i++>{if((i%4==1>||(i%4==2>>{address[i]=rand(>+1 。}/*elseif(i%4==2>{address[i]=random(32768>+1 。}*/}for(i=0 。i<addressnum。i++>{if(i%4==0>{address[i]=address[i+1]+1001 。}elseif(i%4==3>{address[i]=address[i-1]+1001
。}}return0printf("fprintf(fp,"
。产生地地址流如下 \n">产生地地址流如下
。\n">
。for(i=0
。i<addressnum
。i++>{printf("%d",address[i]>
。fprintf(fp,"%d",address[i]>
。}}int
Translate_to_Pages(int
address[100],int
(&page>[100],int
PageSize,int&PageNum>b5E2RGbCAP{// 把地址流根据页面大小和页面数转化为页面流inti
。//intpage[addressnum]={0}
。PageNum=32/PageSize。for(i=0 。i<addressnum。i++>{page[i]=(address[i]>/(1024*PageSize> 。}printf(" 产生地页面流如下 \n">。fprintf(fp," 产生地页面流如下 \n">。for(i=0 。i<addressnum。i++>{printf("%d",page[i]>
。fprintf(fp,"%d",page[i]>
。}return0
。}intFIFO(intpage[],intmemory[],intPageNum>{// 先进先出页面调度算法//
intmemory[32]={0}
。inti,j,k,breaknum=0
。doublerateprintf("\n">
。。for(i=0 。i<addressnum。i++>{for(j=0 。j<PageNum。j++>{if(page[i]==memory[j]>{printf("o"> 。fprintf(fp,"o"> 。break。}}if(j==PageNum>{breaknum++。for(k=PageNum-1。k>=0。k-->{memory[k]=memory[k-1] 。}memory[0]=page[i] 。printf("x"> 。fprintf(fp,"x"> 。}}rate=(double>breaknum/(double>addressnum 。rate=1.0-rate 。printf("\n"> 。printf("fprintf(fp,"
本次
FIFO算法命中率为%lf\n",rate> 。本次FIFO算法命中率为 %lf\n",rate>
。return0
。}intLRU(intpage[],intmemory[],intPageNum>//
不是设地全局变量啊
,为什么会改变数组值啊? p1EanqFDPw{// 最近最少使用淘汰算法inti,j,breaknum=0
。doublerateprintf("\n">
。。/*
for(i=0{
。i<PageNum。i++>breaknum++。printf("x"> 。fprintf(fp,"x"> 。}*/for(i=0 。i<PageNum。i++>memory[i]=-1 。for(i=0 。i<addressnum。i++>{for(j=0 。j<PageNum。j++>{if(memory[j]==page[i]>{// 找到内存中有所需页面exchange(memory[0],memory[j]> 。//始终使 memory[]按使用次数排序printf("o"> 。fprintf(fp,"o"> 。break。}}if(j==PageNum>{// 内存中无现成页面 ,需要从虚存中调度 ,此时淘汰 memory[]数组中最后一个元素即可memory[PageNum-1]=page[i] 。breaknum++。printf("x"> 。fprintf(fp,"x"> 。}}rate=(double>breaknum/(double>addressnum 。rate=1.000-rate 。printf("\n"> 。printf("fprintf(fp,"
本次
LRU算法命中率为 %lf\n",rate> 。本次LRU算法命中率为%lf\n",rate>
。return0
。}int
Caculate_distance(int
memory[],int
page[],int
PageNum,intbreakpoint> DXDiTa9E3d{// 计算每个页面距离下次内存中再次出现地距离 ,并淘汰最远地一个intdismemory[32]={0}
。inti,j,k,distance=0,Max=0
。for(i=0 。i<PageNum。i++>{for(j=breakpoint 。j<addressnum。j++>{distance++ 。if(page[j]==memory[i]>{break。}}dismemory[i]=distance 。}for(k=0 。k<PageNum。k++>{if(dismemory[k]>Max>Max=dismemory[k]。}for(k=0 。k<PageNum。k++>{if(dismemory[k]==Max>break。}returnk
。}intOPT(intpage[],intmemory[],intPageNum>{// 最佳适配算法inti,j,breaknum=0,dis=0,breakpoint=0doublerate 。for(i=0 。i<PageNum。i++>memory[i]=-1 。
。for(i=0
。i<addressnum
。i++>{for(j=0{
。j<PageNum。j++>if(memory[j]==page[i]>// 如果该页面在内存中 ,则不作任何改变{printf("o"> 。fprintf(fp,"o"> 。break。}}if(j==PageNum>{/*若该页面不在内存中 ,扫描内存中每个页面 ,计算每个页面距离下次内存中再次出现地距离 ,并淘汰最远地一个 */breakpoint=i 。dis=Caculate_distance(memory,page,PageNum,breakpoint> 。RTCrpUDGiTmemory[dis]=page[i] 。breaknum++。printf("x"> 。fprintf(fp,"x"> 。}}rate=(double>breaknum/(double>addressnum 。rate=1.0-rate 。printf("\n"> 。printf("fprintf(fp,"
本次
OPT算法命中率为 %lf\n",rate> 。本次OPT算法命中率为%lf\n",rate>
。return0
。}intmain(>{inti 。intPageNum=0,PageSize=0 。intaddress[100]={0},page[100]={0},memory[32]={0}
。for(i=0。i<32。i++>memory[i]=-1if((fp=fopen("data.txt","w">>==NULL>{
。printf("cannotopenfile!">
。//
}printf(" 请输入地址流地数目
addressnum=">。scanf("%d",&addressnum>。Product_Address(address>。while(1>{printf(" 请输入页面大小 PageSize=">。sc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年江苏能达私募基金管理有限公司公开招聘工作人员备考题库附答案详解
- 会议宣传与媒体报道制度
- 2026年财达证券股份有限公司天津狮子林大街证券营业部招聘备考题库带答案详解
- 南昌大学鄱阳湖教育部环境与资源利用教育部重点实验室2025年科研助理招聘备考题库及答案详解参考
- 企业财务预算与审核制度
- 2026年浙江空港数字科技有限公司工程项目部工程项目管理员(劳务派遣)招聘备考题库及答案详解1套
- 2026年黄山市徽州国有投资集团有限公司招聘工作人员备考题库含答案详解
- 养老院入住资格审查制度
- 2026年浦发银行总行社会招聘备考题库带答案详解
- 2026年狮山中心小学道德与法治镇聘教师招聘备考题库含答案详解
- 2026年内蒙古白音华铝电有限公司招聘备考题库带答案详解
- 2025年玉溪市市直事业单位选调工作人员考试笔试试题(含答案)
- 2026年游戏AB测试实施方法含答案
- 长期合作协议书合同书
- 浙江省小型液化天然气气化站技术规程
- 危化品安全管理培训课件
- 小儿鞘膜积液
- 毕业设计粘土心墙土石坝设计含计算书cad图
- 6工程竣工验收交付证明书
- 《侠客风云传前传》支线流程攻略1.0.2.4
- GB/T 12325-2008电能质量供电电压偏差
评论
0/150
提交评论