欢迎来到天天文库
浏览记录
ID:46504790
大小:161.00 KB
页数:12页
时间:2019-11-24
《实验三_存储器管理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、佛山科学技术学院实验报告课程名称操作系统原理实验项目存储器管理专业班级_姓名—学号_指导教师成绩日期—一、实验目的;(1)掌握先进先出页面置换算法;(2)学握随机替换页面置换算法;(3)掌握OPT页面置换算法;(4)掌握最近最少使用页面置换算法;(5)熟悉抖动现象及其产生原理;(6)熟悉C/C++编程。二、实验内容;编写程序,使用四种不同的页面替换策略算法进行页面替换。分别是先进先出,随机替换,时钟页而替换,最近最久未使用页面替换,并计算缺页率。三、实验原理;在地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断。当发生缺页中断吋操作系统必须在内存
2、选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。常用算法有:1.最佳置换算法(OPT)(理想置换算法);2.先进先出置换算法(FIFO):3.最近最久未使用(LRU)算法;4.Clock置换算法(LRU算法的近似实现;5.最少使用(LFU)置换算法。抖动(Thrashing)就是指当内存中己无空闲空间而又发生缺页中断时,需要从内存中调出一页程序或数据送磁盘的对换区中,如果算法不适当,刚被换出的页很快被访问,需重新调入,因此需再选一页调出,而此时被换出的页很快又要被访问,因而又需将它调入,如此频繁更换页血,以致花费大
3、量的吋间,我们称这种现象为〃抖动〃;产生抖动的原因是由于CPU的利用率和多道程序度的对立统一矛盾关系引起的,为了提高CPU利用率,可提高多道程序度,但单纯提高多道程序度乂会造成缺页率的急剧上升,导致CPU的利用率下降,而系统的调度程序乂会为了提高CPU利用率而继续提高多道程序度,形成恶性循环,我们称这时的进程是处于〃抖动〃状态.四、实验步骤;1.输入进稈置换页数;2.输入内存的空间大小;3.输入进程的空间大小;4.输入页面大小(1K/2K/4K/8K/16K/32K);1.选择相应的算法,计算缺页率;6.实验结果分析及讨论。五、程序源代码及注释#include4、stream>#include#include#include〈tiuie.h>#include#includeusingnamespacestd;constintneedMem=640,maxMem=32,orderNum256;classpage{private:intpageSize,needPage,totalPage,S,F,A;inti,j,k,1,n;floatf[4][4];intorder[orderNum],*p;typedefstructclockPage{intpage5、;booluse;structclockPage*next;}clockPage;needPage=needMem/pageSize;//进程占页面数totalPage=maxMem/pageSize;//内在总贞面数}elsereturn;if(pageSize==1){clockPage*cp;public:voidsetTotalPage(int);voidsetOrcler();voidopt(char);voidfifo(char);voidIru(char);voidclock(char);voidshowResult(int);voidinit();}6、;voidpage::setTotalPage(inti){if(i==1){pageSize=i;needPage=needMem;totalPage=maxMem;}elseif(i=27、8、i=49、10、i=8){pageSize=i;//cout«order[i]z/;}//cout<11、]=2;}order[10]=5;elseorder[11]二2;*/if(pageSize==4){}n二2;}}voidpage::init(){elseS=0;if(pageSize=8){F=0;n二3;A=0;}clockPage*pt;p=newint[totalPage];for(j=0;j
4、stream>#include#include#include〈tiuie.h>#include#includeusingnamespacestd;constintneedMem=640,maxMem=32,orderNum256;classpage{private:intpageSize,needPage,totalPage,S,F,A;inti,j,k,1,n;floatf[4][4];intorder[orderNum],*p;typedefstructclockPage{intpage
5、;booluse;structclockPage*next;}clockPage;needPage=needMem/pageSize;//进程占页面数totalPage=maxMem/pageSize;//内在总贞面数}elsereturn;if(pageSize==1){clockPage*cp;public:voidsetTotalPage(int);voidsetOrcler();voidopt(char);voidfifo(char);voidIru(char);voidclock(char);voidshowResult(int);voidinit();}
6、;voidpage::setTotalPage(inti){if(i==1){pageSize=i;needPage=needMem;totalPage=maxMem;}elseif(i=2
7、
8、i=4
9、
10、i=8){pageSize=i;//cout«order[i]z/;}//cout<11、]=2;}order[10]=5;elseorder[11]二2;*/if(pageSize==4){}n二2;}}voidpage::init(){elseS=0;if(pageSize=8){F=0;n二3;A=0;}clockPage*pt;p=newint[totalPage];for(j=0;j
11、]=2;}order[10]=5;elseorder[11]二2;*/if(pageSize==4){}n二2;}}voidpage::init(){elseS=0;if(pageSize=8){F=0;n二3;A=0;}clockPage*pt;p=newint[totalPage];for(j=0;j
此文档下载收益归作者所有