2014请求式存储管理模拟实验源代码及实验报告.docVIP

  • 20
  • 0
  • 约4.55千字
  • 约 14页
  • 2016-12-25 发布于北京
  • 举报

2014请求式存储管理模拟实验源代码及实验报告.doc

//请求页式存储管理模拟#includeiostream #includeprocess.h #includestdlib.h #include ctime #include cstdlib using namespace std; int yemianliu[32]={0};//全局变量数组,地址流 int p; //全局变量p是一共有多少地址流 void chushihua()//初始化函数 { int t; srand(time(0));//随机产生指令序列 p=12+rand()%32; cout地址流序列:; for(int i=0;ip;i++) { t=1+rand()%9; yemianliu[i]=t;//将随机产生的指令数存入页面流 coutt ; } coutendl; } void FIFO(int n) //FIFO算法,n是M的值 { int i; int q=p; int e; int queye=0; int flag; int fifo[32]={0}; while(q--) { flag=0; e=q; for(i=0;in;i++) { if(fifo[i]==yemianliu[q]) { flag=1; break; } } if(flag==0) { int m=n-1; int k=m; while(m--) { fifo[k]=fifo[k-1]; k--; } fifo[0]=yemianliu[e]; queye++; } } coutM=n时FIFO的命中率为:(1-((double)queye/p))*100% ; } void LRU(int n)//LRU算法 { int i; int q=p; int e; int queye=0; int flag; int flag1,; int y; int lru[32]={0}; while(q--) { flag=0; e=q; for(i=0;in;i++) { if(lru[i]==yemianliu[q]) { flag=1; flag1=i; break; } } if(flag==0) { int m=n-1; int k=m; while(m--) { lru[k]=lru[k-1]; k--; } lru[0]=yemianliu[e]; queye++; } else if(flag==1) { y=flag1; while(y--) { lru[flag1]=lru[flag1-1]; flag1--; } lru[0]=yemianliu[e]; } } coutM=n时LRU的命中率为:(1-((double)queye/p))*100%endl; } void main() { chushihua(); for(int i=3;i33;i++) { FIFO(i); LRU(i); } } 报告: ××××大学 计算机科学与工程学院实验报告 实验题目: 请求页式存储管理模拟实验题目: 3 实验要求: 3 一、方案设计 4 1.技术方案: 4 (1)先进先出法(First In First Out): 4 (2)最近最久未使用(Least Recently Used): 4 2.功能设计: 4 (1)chushihua()函数的功能: 4 (2)FIFO()的功能: 4 (3)LRU()的功能: 4 二、结构设计 4 1、数据结构设计 4 2、程序结构设计 4 三、程序设计 5 1.FIFO()函数流程图; 5 2.LRU()函数流程图: 6 四、编码调试 7 主要问题及解决方法: 7 五、实验总结 7 六、程序清单 8 源代码: 8 运行结果: 11 实验题目: 请求页式存储管理模拟设计一个虚拟存储区和内存工作区,并使用下述算法计算访问命中率。 先进先出的算法(FIFO) 最近最算法(LRU) 最近最不经常使用算法(NUR)* 最佳淘汰算法(OPT)* 最少访问页面算法(LFU)* 命中率=1-页面失效次数/页面地址流长度 程序设计中,首先用Srand()和Rand()函

文档评论(0)

1亿VIP精品文档

相关文档