版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深扎活动策划方案(3篇)
- 甘肃换热站施工方案(3篇)
- 结构地面施工方案(3篇)
- 装修-弱电施工方案(3篇)
- 野外攀岩活动策划方案(3篇)
- 龙舟游街活动策划方案(3篇)
- 含氮共轭微孔聚合物的制备及其气敏性能研究
- 基于问题驱动与整合式混合教学模式的初中数学复习课教学设计与实验研究-以二次函数复习课为例
- 2025年12月GESP编程能力认证C++等级考试二级真题(含答案和解析)
- 基于LDA和SVM的社交媒体内涝数据分析与可视化平台研究
- 医院人事科人事专员笔试题库及答案解析
- 2025-2030中国沿海港口液体化工码头运营与布局规划报告
- 《国家十五五规划纲要》全文
- 2025年护士长选拔理论考核试题及答案
- 养老院护理流程培训
- 2026年黑龙江旅游职业技术学院单招职业倾向性考试必刷测试卷必考题
- (13)普通高中艺术课程标准日常修订版(2017年版2025年修订)
- 艺术家梵高介绍
- 给孩子讲大数据
- 2025年江苏农林职业技术学院单招职业技能测试题库完整参考答案详解
- 2026年黑龙江林业职业技术学院单招综合素质考试题库必考题
评论
0/150
提交评论