计算机操作系统储存管理试验报告

上传人:鲁** 文档编号:487848369 上传时间:2024-01-26 格式:DOC 页数:12 大小:119.50KB
返回 下载 相关 举报
计算机操作系统储存管理试验报告_第1页
第1页 / 共12页
计算机操作系统储存管理试验报告_第2页
第2页 / 共12页
计算机操作系统储存管理试验报告_第3页
第3页 / 共12页
计算机操作系统储存管理试验报告_第4页
第4页 / 共12页
计算机操作系统储存管理试验报告_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《计算机操作系统储存管理试验报告》由会员分享,可在线阅读,更多相关《计算机操作系统储存管理试验报告(12页珍藏版)》请在金锄头文库上搜索。

1、软件学院综合性、设计性实验报告专业:java年级/班级:2012级 2013 2014学年第一学期课程名称计算机操作系统指导教师学号-姓名1228524012-王宇菲实验地点过街楼B区实验时间2014-12-23项目名称储存管理实验类型综合性/设计性实验目的通过请求页式存储管理中页面置换算法模拟程序,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。实验仪器或设备实验机房pc电脑总体设计(设计原理、设计方案及流程等)1通过随机数产生一个指令序列,共320条指令,指令的地址按下述原则生产:50%的指令是顺序执行的;25 %的指令是均匀分布在前地址部分;25%的指令是均匀分布在后地址部分

2、。2将指令序列变换成为页地址流设页面大小为1K;用户内存容量为 4页到32页;用户虚存容量为 32K。在用户虚存中,按每 K存放10条指令排列虚存地址,即 320条指令在虚存中的存 放方式为:第0条至第9条指令为第0页;第10条至19条指令为第1页;第310 条至319条指令为第31页。3.计算并输出下述各种算法在不同内存容量下的命中率。(1) 先进先出算法(FIFO)(2) 最近最少使用算法(LRU )(3) 最佳使用算(OPT)命中率=1页面失效次数/页地址流长度本实验中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。关于随机数的产生办法。首先要初

3、始化设置随机数,产生序列的开始点,例如,通过下列语句实现:srand ( 400 );(1) 计算随机数,产生320条指令序列m= 160;for (i = 0; i 80; i+ =j = i * 4;aj = m;aj+1 = m+1 ;aj+2 = aj * 1.0 * rand( )/32767 ;aj+3 = aj+2+1m = aj+3+(319-aj+3)* 1.0 * rand( )/32767 ;(2) 将指令序列变换成为页地址流for ( k = 0; kv320; k+) pt = ak/10 ;pd= ak%10 ;(3) 计算不同算法的命中率rate= 1-1.0*

4、U/320 ;其中 U 为缺页中断次数, 320 是页地址流长度。(4) 输出格式kfifo1ru40.230.25321.01.0四、实验步骤(包括主要步骤、代码分析等)1 代码如下#include#include#include#includeMyprintf#define河南师范大学计算机与信息技术学院printf(|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|n ) /* 表格控制 */#define bsize 4/#define psize 16/typedef struct pageint num;int time;Page;/*/*/*物理块大小进程大小

5、Page bbsize;int cbsizepsize;int queue100; int K;/*/*/*/*记录页面号 */ 记录调入内存时间 */页面逻辑结构,结构为方便算法实现设计 内存单元数 */ 暂保存内存当前的状态:缓冲区 */ 记录调入队列 */调入队列计数变量 */*/int phbbsize=0; / int propsize=0; / int flagbsize = 0; / int i = 0, j = 0,k = 0; /i int m = -1, n = -1;/int max = -1,maxflag = 0; / int count = 0;/物理块标号进程序列

6、号进程等待次数 ( 存放最久未被使用的进程标志 表示进程序列号 ,j 表示物理块号 物理块空闲和进程是否相同判断标志 标记替换物理块进程下标 统计页面缺页次数*随机产生/* 序列号函数/* int* build()printf( 随机产生一个进程序列号为: n); int i = 0;for(i=0; ipsize; i+)proi = 10*rand()/(RAND_MAX+1)+1; printf(%d ,proi);printf(n);return(pro);/*/ 查找空闲物理块*int searchpb()for(j=0; jbsize; j+) if(phbj = 0)m = j;

7、 return m;break;return -1;/* / 查找相同进程*int searchpro()for(j = 0; j bsize; 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+)m=searchpb();n=searchpro();/ 找 flag 值最大的 for(j = 0; j ma

8、xflag)maxflag = flagj;max = j;不存在相同进程存在空闲物理块进程号填入该空闲物理块不存在空闲物理块if(n = -1)/if(m != -1)/phbm = proi; / count+;flagm = 0;for(j = 0;j = m; j+)flagj+;m = -1;else / phbmax = proi;flagmax = 0;for(j = 0;j bsize; j+)flagj+;max = -1;maxflag = 0;count+;else / 存在相同的进程phbn = proi;for(j = 0;j bsize; j+)flagj+;n =

9、 -1;for(j = 0 ;j bsize; j+)printf(%d ,phbj);printf(n);printf( 缺页次数为: %dn,count);printf(n);/* 初始化内存单元、缓冲区 */void Init(Page *b,int cbsizepsize)int i,j;for(i=0;ipsize;i+)bi.num=-1;bi.time=psize-i-1;for(i=0;ibsize;i+)for(j=0;jpsize;j+) cij=-1;/* 取得在内存中停留最久的页面 , 默认状态下为最早调入的页面 */河南师范大学计算机与信息技术学院int GetMax

10、(Page *b)int i;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) bval.time=0; for(i=0;ibsize;i+) if (i!=val) bi.time+;else记录调入页面 */queue+K=fold;/* val=GetMax(b); bval.num=fold;bval.time=0;for(i=0;ibsize;i+)if (i!=val)bi.time+;void LRU()int i,j;K=-1;Init(b, c);for(i=0;ipsize;i+)Lruu(proi,b);c0i=proi;/* 记录当前的内存单元中的页面 */ for(j=0;jbsize;j+) cji=bj.num;/* 结果输出 */print

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 演讲稿/致辞

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号