2022年实验操作系统存储管理实验报告.docx

上传人:C****o 文档编号:12932557 上传时间:2022-04-27 格式:DOCX 页数:16 大小:473.27KB
返回 下载 相关 举报
2022年实验操作系统存储管理实验报告.docx_第1页
第1页 / 共16页
2022年实验操作系统存储管理实验报告.docx_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《2022年实验操作系统存储管理实验报告.docx》由会员分享,可在线阅读,更多相关《2022年实验操作系统存储管理实验报告.docx(16页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精品学习资源试验四操作系统储备治理试验报告一、试验目的储备治理的主要功能之一是合理地安排空间;恳求页式治理是一种常用的虚拟储备治理技术;本试验的目的是通过恳求页式治理中页面置换算法模拟设计,明白虚拟储备技术的特点,把握恳求页式储备治理的页面置换算法;二、试验内容(1) 通过运算不同算法的命中率比较算法的优劣;同时也考虑了用户内存容量对命中率的影响;页面失效次数为每次拜访相应指令时,该指令所对应的页不在内存中的次数;在本试验中,假定页面大小为1k,用户虚存容量为32k,用户内存容量为4页到32页;(2) produce_addstream通过随机数产生一个指令序列,共320条指令 ;A、 指令的

2、地址按下述原就生成:1) 50% 的指令是次序执行的2) 25%的指令是匀称分布在前地址部分3) 25% 的指令是匀称分布在后地址部分B 、详细的实施方法是:1) 在0 ,319 的指令地址之间随机选取一起点m;2) 次序执行一条指令,即执行地址为m+1 的指令;3) 在前地址 0 , m+1 中随机选取一条指令并执行,该指令的地址为m;4) 次序执行一条指令,地址为m+1的指令5) 在后地址 m+2 , 319 中随机选取一条指令并执行;6) 重复上述步骤 1) 5),直到执行 320次指令C、将指令序列变换称为页地址流欢迎下载精品学习资源在用户虚存中,按每 k存放 10条指令排列虚存地址,

3、即320条指令在虚存中的存放方式为:第0条第9条指令为第 0页对应虚存地址为0, 9 );第10条 第19条指令为第 1页对应虚存地址为 10 ,19 );第310条第319条指令为第 31页对应虚存地址为 310 , 319); 按以上方式,用户指令可组成32页;( 3)运算并输出下属算法在不同内存容量下的命中率;1) 先进先出的算法 FIFO );2) 最近最少使用算法 LRU );3) 正确剔除算法 OPT );4) 最少拜访页面算法 FIFOLRULFUMsize 加1五运行结果第一打印出产生的指令信息,第一列为指令序列号,其次列为指令地址,第三列为指令所在的虚页号欢迎下载精品学习资源

4、挑选 FIFO调度算法,并且内存从3也开头逐步增加到32页,打印出缺页次数缺页率,命中率欢迎下载精品学习资源挑选 LRU 调度算法,并且内存从 3也开头逐步增加到32页,打印出缺页次数缺页率,命中率欢迎下载精品学习资源挑选 OPT调度算法,并且内存从 3也开头逐步增加到32页,打印出缺页次数缺页率,命中率欢迎下载精品学习资源六 试验程序产生指令流文件 produce_addstream.h #ifndef PRODUCE_ADDSTREAM_H #define PRODUCE_ADDSTREAM_H #include#include #include #include欢迎下载精品学习资源#in

5、clude using namespace std;#define randomx rand%x#define MAX_LENGTH 320 struct produceint num ; /指令序号int zhiling ; /指令地址int virtualpage ; /指令虚页号produce *next ; ;struct produce*creatlist ;void insertstruct produce *first,struct produce *s; /插入一个节点 ;/ 打印函数int maxvectorvector ,int ;struct produce*creatl

6、istsrandinttime0 ;struct produce*first=new produce ;first-next=NULL;int m=0,m1=0 ;/*int yanzheng20=7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1;for int i=0 ;i;i+struct produce *s0 ;s0=new produce;s0-num=i*4+0 ;s0-zhiling=yanzhengi*4+0;s0-virtualpage=s0-zhiling ;insertfirst,s0 ;struct produce *s1 ;s1=new

7、produce;s1-num=i*4+1 ;s1-zhiling=yanzhengi*4+1;s1-virtualpage=s1-zhiling ;insertfirst,s1 ;struct produce *s2 ;s2=new produce;s2-num=i*4+2 ;s2-zhiling=yanzhengi*4+2;s2-virtualpage=s2-zhiling ;insertfirst,s2 ;struct produce *s3 ;欢迎下载精品学习资源欢迎下载精品学习资源/*/*s3=new produce;s3-num=i*4+3 ;s3-zhiling=yanzhengi

8、*4+3;s3-virtualpage=s3-zhiling ;insertfirst,s3 ;欢迎下载精品学习资源for int i=0 ;i;i+欢迎下载精品学习资源/*/struct produce *s0 ;s0=new produce;m=randomMAX_LENGTH;s0-num=i*4+0 ;s0-zhiling=m+1 ;s0-virtualpage=s0-zhiling/10 ;insertfirst,s0 ;m1=randomm+1 ;struct produce *s1 ;s1=new produce;s1-num=i*4+1 ;s1-zhiling=m1 ;s1-v

9、irtualpage=s1-zhiling/10 ;insertfirst,s1 ;struct produce *s2 ;s2=new produce;s2-num=i*4+2 ;s2-zhiling=m1+1 ;s2-virtualpage=s2-zhiling/10 ;insertfirst,s2 ;struct produce *s3 ;s3=new produce;s3-num=i*4+3 ;s3-zhiling=randomMAX_LENGTH-m1-2+m1+2;s3-virtualpage=s3-zhiling/10 ;insertfirst,s3 ;欢迎下载精品学习资源ret

10、urn first ;void insertstruct produce *first,struct produce *sstruct produce *r=first ;struct produce *p ;whilerp=r ;r=r-next ;欢迎下载精品学习资源p-next=s ;p=s;p-next=NULL ;void printstruct produce *first/打印函数struct produce *p ;p =first-next ;cout 随机产生的指令的信息如下endl ;cout 指令序号 指令地址 指令虚页号 coutnumtzhilingvirtualp

11、agenext ;int maxvectorvector page,int Maxpageint a=0,position=0 ;for int i=0 ;iif pagei1aa=pagei1 ;position=i ;return position ;#endif先来先出调度算法: fifo.h#ifndef FIFO_H #define FIFO_Hvoid fifostruct produce *first,int Maxpagevector pageMaxpage;/for int i=0 ;ipagei=-1 ;int rear=0;/定义一个变量,指向要被替换的位置int pag

12、es;/定义变量储存当前指令的所在的地址int count1=0;/int count2=0;/缺页次数int find=1 ;struct produce *p=first-next;while p欢迎下载精品学习资源pages=p-virtualpage; forint i=0 ;iif pagei=-1|count1pagei=pages;count1 +;count2 +;find =1;break;else if pagei=pagesfind =1;break;find=0 ;if find=0pagerear=pages; rear +;rear=rear%Maxpage;cou

13、nt2 +;p=p-next;coutFIFO调度算法缺页次数 缺页率命中率endl;coutcount2/MAX_LENGTH/MAX_LENGTHendl ;#endif FIFO_HLRU 调度算法 lru.h #ifndef LRU_H #define LRU_H #include using namespace st;d/int maxvectorvector ,int ;void lrustruct produce*first,int Maxpagestruct produce*p=first-next;vectorvector page2Maxpage, vector2;int

14、count1=0;/定义内存已经被占用的页数欢迎下载精品学习资源int count2=0; /定义记录缺页次数intequal=0;/定义判定假如当前页数与比较的页数,假如相等就为1,否就为 0 int place=0; /定义要替换的位置for int i=0 ;ipage2i0=-1 ;page2i1=0 ;while pif count1for int i=0 ;ipage2i1=page2i1+1 ;if page2i0=-1page2i0=p-virtualpage ;count2+;break;else if page2i0=p-virtualpagepage2i1 =1 ;欢迎下

15、载精品学习资源elsecount1+;for int i=0 ;i欢迎下载精品学习资源page2i1 +=1 ;if page2i0=p-virtualpageequal=1;place=i;break;if equal=1欢迎下载精品学习资源elsepage2place1 =1;equal=0;place = maxpage2,Maxpage;欢迎下载精品学习资源page2place1=1;page2place0=p-virtualpage;count2+;p=p-next;coutLRU 调度算法缺页次数 缺页率 命中率endl;coutcount2/MAX_LENGTH/MAX_LENG

16、THendl ;#endif LRU_HOPT 调度算法 opt.h #ifndef OPT_H #define OPT_H #include using namespace st;dint searchstruct produce*place,int position;void optstruct produce*first,int Maxpagestruct produce*p =first-next;vectorvector page3Maxpage, vector2;int count1=0;/定义内存已被使用的页数int count2=0;/定义缺页次数 int current=0;

17、 /定义当前工作位置intequal=0;/定义判定假如当前页数与比较的页数,假如相等就为1,否就为 0 int place=0; /定义要替换的位置for int i=0 ;ipage3i0=-1 ;page3i1=0 ;while p/cout1111endl;if count1for int i=0 ;iif page3i0=-1page3i0=p-virtualpage ;page3i1=searchp,current;欢迎下载精品学习资源count2+;break;else if page3i0=p-virtualpagepage3i1=searchp,current;欢迎下载精品学

18、习资源elsecount1+;for int i=0 ;i欢迎下载精品学习资源if page3i0=p-virtualpageequal=1;place=i;break;if equal=1欢迎下载精品学习资源elsepage3place1 =searchp,current;equal=0;place = maxpage3,Maxpage; page3place1=searchp,current;page3place0=p-virtualpage;count2 +=1;欢迎下载精品学习资源p=p-next;current +=1;coutOPT调度算法缺页次数 缺页率 命中率endl;cout

19、count2/MAX_LENGTH/MAX_LENGTHstruct produce*p=place-next;int current=place-virtualpage;int position1=position+1;whilep欢迎下载精品学习资源if current=p-virtualpagereturn position1;position1+;p=p-next;return position1;#endif主函数 掌握台ccglmain.cpp#include#include produce_addstream.h #include fifo.h#include lru.h #in

20、clude opt.h void mainint S;/定义变量记录用户挑选char again;/定义变量用户挑选连续仍是退出cout开头产生内存指令 ;/产生随机指令cout打印产生的指令信息 ;/打印产生的指令信息while 1int Maxpage=3;/定义内存最大页面数cout输入你的挑选 endl ;cout调度算法 nnn4: 清屏S;whileS4|Scout输入错误重新输入 S;if S.=4whileMaxpageswitchS欢迎下载精品学习资源case 1:fifofirst,Maxpage;break;case 2:lrufirst,Maxpage;break;case 3:optfirst,Maxpage;break;default:break;Maxpage+;cout是否连续调用其他算法?是请按 y/Y,否请按其它键 again;ifagain=y|again=Ycontinue;else break;else systemcls;欢迎下载

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

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com