已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统存储管理实验-报告一、实验目的及内容1、实验目的:存储管理的主要功能之一是合理分配存储空间,请求页式存储管理是常用的虚拟存储技术。本实验的目的是通过请求页式管理中页面置换算法了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。2、实验内容:共320条1通过随机数产生一个指令序列,共320条指令,指令的地址按下述原则生成:(1) 50%的指令是顺序执行的;(2) 25%的指令是均匀分布在前地址部分;(3) 25%的指令是均匀分布在后地址部分二、实验原理及基本技术路线图(方框原理图或程序流程图 )(见下页)申请分配一个X大小的空间置空闲区KX表的开始地址表目查完?KXI。STATE=空表目?L=KXi.addrKXI.SIZE=XiKXi.addr=L+XKXI.SIZE=KXI.size-Xi被分配后的剩余空闲块在已分配的分区FP表中找一个状态为空表目序号F在已分配的分区FP填入分配的信息置F的大小=Xi F的始址=L F的状态=已分配返回本次无法分配 I=I+1 KXI。STATE=空表目?三、所用仪器、材料(设备名称、型号、规格等或使用软件)Microsoft Visual Studio 6.0四、实验方法、步骤(或:程序代码或操作过程)1、具体实施办法为:(1) 在0,319之间选一个起点m;(2) 顺序执行一条指令,即m+1条;(3) 向前地址0,m-1中执行一条指令m;(4) 顺序执行一条指令,即m+1条;(5) 向后地址m+2,319中执行一条指令m2、将指令序列变换为页地址流。(1) 页面大小为1KB;(2) 用户实存容量为4页到32页;(3) 用户虚拟存储容量为32KB。用户虚拟存储容量为32KB,每1KB中放10条指令,共320条指令(0319)。其中09为0页,1019为1页。310319为31页。3、使用不同的页面调度算法处理缺页中断,并计算不同实存容量下(4K32K)的命中率。(1) 使用先出算法(FIFO);(2) 最近最少使用算法(LRU);(3) 最佳淘汰算法(OPT);先淘汰最不常用的页地址;(4) 最少访问页面地址(LFU);命中率算法为: 缺页中断次数命中率=1- 页地址长度-.4、 程序代码如下: class freetable/空闲区说明表 public: int length;/从起始地址开始的一个连续空闲区的长度 int startaddress;/空闲区的主存起始地址 int statue;/为时是未分配状态,为0时是空表目状态 freetable tmax; void adjust()/用冒泡法排列,并将状态为未分配的栏放在前部分 int i=0; int j ; int temp; for(;imax;i+)/是表格紧缩,让空表目集中在表格后面 if(ti.statue=0) j=1; for(;(j0;i-) for(j=0;jtj+1.startaddress) temp=tj+1.startaddress; tj+1.startaddresstj.startaddress; tj.startaddress=temp; temp=tj+1.lenth; tj+1.startaddresstj.lenth; tj.lenth=temp; void printtable() /输出空闲表 int j; for(i=0;ti.statue=1;i+) coutti.startaddress=ti.startaddressendl; coutti.length=ti.lengthendl; coutti.statue=ti.statueendl; int FF(int x)/最先适应算法分配主存空间 int address; int j=0; for(;jmax;j+) if(tj.statue=1)/未分配状态时 if(tj.length=x)/刚好有与作业一样大小的空闲区 tj.statue=0;/把状态置为空表目 adjust(); cout作业分配后的空闲区说明表:x)/当空闲区的大小比作业的大 address=tj.startaddress;/先保存作业在内存的首地址 tj.lenth=tj.lenth-x;/把空闲区分为两块 tj.startaddress=tj.startaddress+x; adjust(); cout作业分配后的空闲区说明表:endl; printtable(); return(address);else /当前空闲区不够大时if(j=max) cout作业不能装入endl;return 0;break;else if(j=max) cout作业不能装入endl;return 0;break;void circle(int l,int s)int c,i;for(c=0;(tc.statue=1)&(cmax);c+)if(tc-1.startaddress=s+1)&(tc.starataddress+tc.length=s)&(c+1max)/上下都临tc+1.statue=0; /把下临的空闲表状态置0tc.length=tc.length+tc+1.length+1; /把上临的空闲区的长度置为3者之和break;if(tc.startaddress=s+1/下临 tc.startaddress=s;tc.length=1-tc.length;break;if(tc.startaddress+tc.length=s)/上临tc+1.statue=0;tc.length=tc.length+1;break;if(tc.statue=0)/上下都不临for(i=0;i=mac;i-) /填入空表目中if(ti.statue=0)tj.startaddress=s;tj.length=1;ti.statue=1;break;adjust();/顺序调整和紧缩空闲区表printtable();/最先适应算法回收void main()int i;int x;int ad5;for(i=0;imax;i+)ti.statue=0;ad0=5;ad1=26;ad2=0;t0.startaddress=14;/初始化t0.length=12;t0.statue=1;t1.startaddress=32;t1.length=96;t1.statue=1;cout”原始表格为”endl;printable();cout”作业长度为”x;ad3=FF(x);/调用分配函数cout”作业3的归还量:4k”endl;circle(4,ad2);/调用回收函数,回收作业3cout”作业2的归还量:6k”endl;circle(6,ad1);/调用回收函数,回收作业2五、实验过程原始记录(测试数据、图表、计算等). 关于随机数的产生办法.首先要初始化设置随机数,产生序列的开始点,例如:通过下列语句实现:Srand (400)1 计算机数,产生320条指令序列m=160;for(i=0;i80;i+)j=j*4; aj=m; aj+1=m+1; aj+2=aj*1.0*rand()32767; aj+3=aj+2+1; m=aj+3+(319-aj+3)*1.0*rand()32767;2 将指令序列变换成页地址流:for(k=0;k320;k+)Pt=ak/10;.3 计算不同算法的命中率 Rate=1-1.0 *U/320; 其中U为缺页数,320是地址流的长度.4 输出格式K fifo lru4 0.23 0.25. . .32 1.0 1.0六、实验结果、分析和结论(误差分析与数据处理、成果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑项目经理劳动合同
- 软装工程承包合同范本
- 学院食堂采购制度
- 制定采购办公用茶制度
- 医院药房采购制度范本
- 学院采购档案管理制度
- 医院采购流程制度
- 氧气采购与管理制度
- 区块链采购合同制度
- 天津市和平区2026届高三第二学期第一次质量调查历史试题(含部分答案)
- 汽轮机和水轮机检修工国家职业标准(征求意见稿)
- 贵州应急工程管理办法
- 光伏电站应急救援培训课件
- 人体动静脉课件
- 2025年广东省初中学业水平考试语文试卷(含答案详解)
- 2025年江苏护理职业学院单招《数学》考前冲刺练习试题附参考答案详解(培优A卷)
- 泰山学院中国地理课件第9章 东北区
- 作风建设培训课件民航
- 二手车经纪人题库及答案
- 专项维修资金存放服务方案投标文件技术方案
- T/CAQI 96-2019产品质量鉴定程序规范总则
评论
0/150
提交评论