操作系统存储管理实验-报告

上传人:第*** 文档编号:34984634 上传时间:2018-03-05 格式:DOC 页数:7 大小:50.54KB
返回 下载 相关 举报
操作系统存储管理实验-报告_第1页
第1页 / 共7页
操作系统存储管理实验-报告_第2页
第2页 / 共7页
操作系统存储管理实验-报告_第3页
第3页 / 共7页
操作系统存储管理实验-报告_第4页
第4页 / 共7页
操作系统存储管理实验-报告_第5页
第5页 / 共7页
点击查看更多>>
资源描述

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

1、操作系统存储管理实验-报告 一、实验目的及内容1、实验目的: 存储管理的主要功能之一是合理分配存储空间, 请求页式存储管理是常用的 虚拟存储技术。本实验的目的是通过请求页式管理中页面置换算法了解虚拟存 储技术的特点,掌握请求页 式存储管理的页面置换算法。 2、实验内容: 共320条1通过随机数产生一个指令序列,共320条指令,指令的地址按下述原 则生成: (1) 50%的指令是顺序执行的; (2) 25%的指令是均匀分布在前地址部分; (3) 25%的指令是均匀分布在后地址部分二、实验原理及基本技术路线图 (方框原理图或程序流程图 )(见下页)申请分配一个X大小的空间 置空闲区KX表的开始地址

2、 表目查完? KXI。STATE=空表目?L=KXi.addr KXI.SIZE=Xi KXi.addr=L+X KXI.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; (

3、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 )。其中0 9为0页,1019 为1页。310319为31页。3、使用不同的页面调度算法处理缺页中断,并 计算不同实存容量下(4K32K)的 命中率。 (1) 使用先出算法(FIFO); (2) 最近最少使用

4、算法(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(;

5、i0;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+)coutx)/当空闲区的大小比作业的大address=tj.startaddress;/先保存作业在内存的首地址tj.lenth=tj.lenth-x;/把空闲

6、区分为两块tj.startaddress=tj.startaddress+x;adjust();coutx; ad3=FF(x);/调用分配函数 cout”作业3 的归还量:4k”endl; circle(4,ad2);/调用回收函数,回收作业3 cout”作业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 lru 4 0.23 0.25 . . .

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 初中课件

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