欢迎来到天天文库
浏览记录
ID:39558257
大小:50.54 KB
页数:7页
时间:2019-07-06
《操作系统存储管理实验-报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、操作系统存储管理实验-报告一、实验目的及内容 1、实验目的:存储管理的主要功能之一是合理分配存储空间,请求页式存储管理是常用的虚拟存储技术。本实验的目的是通过请求页式管理中页面置换算法了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。2、实验内容:共320条1通过随机数产生一个指令序列,共320条指令,指令的地址按下述原则生成:(1) 50%的指令是顺序执行的;(2) 25%的指令是均匀分布在前地址部分;(3) 25%的指令是均匀分布在后地址部分 二、实验原理及基本技术路线图(方框原理图或程序流程
2、图) (见下页) 申请分配一个X大小的空间置空闲区KX表的开始地址表目查完?KX[I]。STATE=空表目?L=KX[i].addrKX[I].SIZE>=XiKX[i].addr=L+XKX[I].SIZE>=KX[I].size-Xi被分配后的剩余空闲块在已分配的分区FP表中找一个状态为空表目序号F在已分配的分区FP填入分配的信息置F的大小=Xi F的始址=L F的状态=已分配返回本次无法分配 I=I+1 KX[I]。STATE=空表目?
3、 三、所用仪器、材料(设备名称、型号、规格等或使用软件)MicrosoftVisualStudio6.0 四、实验方法、步骤(或:程序代码或操作过程) 1、具体实施办法为:(1) 在[0,319]之间选一个起点m;(2) 顺序执行一条指令,即m+1条;(3) 向前地址[0,m-1]中执行一条指令m`;(4) 顺序执行一条指令,即m`+1条;(5) 向后地址[m`+2,319]中执行一条指令m` 2、将指令序列变换为页地址流。(1) 页
4、面大小为1KB;(2) 用户实存容量为4页到32页;(3) 用户虚拟存储容量为32KB。用户虚拟存储容量为32KB,每1KB中放10条指令,共320条指令(0~319)。其中0~9为0页,10~19为1页。。。。。。310~319为31页。 3、使用不同的页面调度算法处理缺页中断,并计算不同实存容量下(4K~32K)的命中率。(1) 使用先出算法(FIFO);(2) 最近最少使用算法(LRU);(3) 最佳淘汰算法(OPT);先淘汰最不常用的页地址;(4) 最少访问页面地址(L
5、FU);命中率算法为: 缺页中断次数命中率=1------------------------- 页地址长度- .. .4、程序代码如下: classfreetable//空闲区说明表 { public: intlength;//从起始地址开始的一个连续空闲区的长度 intstartaddress;//空闲区的主存起始地址 intstatue;}//为时是未分配状态,为0时是空表目状态 freetable t[max]; voidadjust()/
6、/用冒泡法排列,并将状态为未分配的栏放在前部分 { int i=0; int j; int temp; for(;i7、tartaddress; t[i].length=t[j].lenth; t[i].statue=t[j].statue; t[j].statue=0; } } for(i=0;t[i].state==1;i++)//用冒泡法排序 i--; for(;i>0;i--) for(j=0;j<=i-1;j++) {if(t[j].startaddress>t[j+8、1].startaddress) {temp=t[j+1].startaddress; t[j+1].startaddress>t[j].star
7、tartaddress; t[i].length=t[j].lenth; t[i].statue=t[j].statue; t[j].statue=0; } } for(i=0;t[i].state==1;i++)//用冒泡法排序 i--; for(;i>0;i--) for(j=0;j<=i-1;j++) {if(t[j].startaddress>t[j+
8、1].startaddress) {temp=t[j+1].startaddress; t[j+1].startaddress>t[j].star
此文档下载收益归作者所有