操作系统第九章实验主存空间的分配与回收.docx
- 文档编号:7079855
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:14
- 大小:126.16KB
操作系统第九章实验主存空间的分配与回收.docx
《操作系统第九章实验主存空间的分配与回收.docx》由会员分享,可在线阅读,更多相关《操作系统第九章实验主存空间的分配与回收.docx(14页珍藏版)》请在冰豆网上搜索。
操作系统第九章实验主存空间的分配与回收
第九章虚拟存储器管理
软件1211102052019金凯
1.实验题目:
采用最佳页面替换算法(OPT)、先进先出页面替换算法(FIFO)和最近最少使用页面替换算法(LRU)来进行内存管理。
FIFO先进先出页面替换算法,基于程序总是按线性顺序来访问物理空间这一假设,总是淘汰最先调入主存的页面,即淘汰在主存中驻留时间最长的页面,认为驻留时间最长的页不再使用的可能性最大。
LRU最近最少使用页面替换算法淘汰的页面是在最近一段时间内最久未被访问的那一页,它是基于程序局部性原理来考虑的,认为那些刚被使用过的页面可能还要立即被使用,而那些在较长时间内未被使用的页面可能不会立即使用。
OPT最佳页面替换算法,当要调入一页而必须淘汰旧页时,应该淘汰以后不再访问的页,或距现在最长时间后要访问的页面。
2.程序流程图
FIFO置换调度算法流程图:
图2FIFO置换调度算法流程图
3.源程序
本程序在c++编译器cfree上通过测试,vc6.0没有经过测试。
说明:
下列程序均使用教材269页的实例,总共是3个页框,共有5个独立的队列。
顺序是2、3、2、1、5、2、4、5、3、2、5、2,共12次请求。
为了测试方便,仅使用前9个。
1>最佳页面替换算法OPT
#include
usingnamespacestd;
voidOPT()
{
intlength;
intopt[100]={0};
intpageLength;
intoptPage[100]={0};
intcompare[100]={0};
intcompares=1;
inti,j,k;
cout<<"***************************最佳页面调度算法***********************"< cout<<"页框数: "; cin>>pageLength; cout<<"请输入页面序列的长度: "; cin>>length; cout<<"时刻t"<<'\t'; for(i=0;i { cout< }cout< for(i=1;i<=length;i++) { cin>>opt[i]; } for(i=1;i<=length;i++) { compares=1; for(intll=1;ll<=100;ll++) { compare[ll]=0; } intflag=0; for(j=1;j<=pageLength;j++) { if(opt[i]==optPage[j]) { flag=1; j=pageLength+1; } elseif(optPage[j]==0) { optPage[j]=opt[i]; j=pageLength+1; flag=1; } } if(flag==1){} else { for(j=1;j<=pageLength;j++) { for(intk=i;k<=length;k++) { if(optPage[j]==opt[k]) { k=length+1; } else { compare[compares]++; } } compares++; } for(k=1;k { if(compare[k]>=compare[k+1]) { compare[k+1]=compare[k]; } else { } } flag=compare[pageLength]; for(k=1;k<=pageLength;k++) { if(flag==compare[k]) { flag=k; k=pageLength+1; } } cout<<"→淘汰"< optPage[flag]=opt[i]; } cout< for(intjk=1;jk<=pageLength;jk++) { cout<<"P"< } cout< for(ints=1;s<=pageLength;s++){ cout< } cout< } } intmain(void) { OPT(); cout< cout<<"程序测试BY: 金凯"< cout<<""; cout<<"测试结果: 符合最佳页面替换算法的要求和结果"< return0; } 2>先进先出页面替换算法(FIFO) #include usingnamespacestd; voidFIFO(){ intlength; intfifo[100]={0}; intpageLength; intfifoPage[100]={0}; inti,j,k; cout<<"***********************先进先出页面调度算法**************************"< cout<<"页框数: "; cin>>pageLength; cout<<"请输入页面序列的长度: "; cin>>length; cout<<"时刻t"<<'\t'; for(i=0;i { cout< }cout< for(i=1;i<=length;i++) { cin>>fifo[i]; } for(i=1;i<=length;i++){ intflag=0; for(j=1;j<=pageLength;j++){ if(fifo[i]==fifoPage[j]){ flag=1; j=pageLength+1; }elseif(fifoPage[j]==0){ fifoPage[j]=fifo[i]; j=pageLength+1; flag=1; } } if(flag==1) { } else { cout<<"→淘汰"< for(j=1;j<=pageLength;j++){ fifoPage[j]=fifoPage[j+1]; } fifoPage[pageLength]=fifo[i]; } cout< for(intjk=1;jk<=pageLength;jk++) { cout<<"P"< } cout< for(ints=1;s<=pageLength;s++){ cout< } cout< } } intmain(void) { FIFO(); cout< cout<<"程序测试BY: 金凯"< cout<<""; cout<<"测试结果: 符合先进先出页面替换算法的要求和结果"< return0; } 3>最近最少使用页面替换算法(LRU) #include usingnamespacestd; voidLRU() { intlength; intlru[100]={0}; intpageLength; intlruPage[100]={0}; inti,j,k; cout<<"***********************最近最少使用页面替换算法***********************"< cout<<"页框数: "; cin>>pageLength; cout<<"请输入页面序列的长度: "; cin>>length; cout<<"时刻t"<<'\t'; for(i=0;i { cout< }cout< for(i=1;i<=length;i++) { cin>>lru[i]; } for(i=1;i<=length;i++){ intflag=0; for(j=1;j<=pageLength;j++){ if(lru[i]==lruPage[j]){ for(intcc=j;cc>0;cc--){ lruPage[cc]=lruPage[cc-1]; } lruPage[1]=lru[i]; flag=1; j=pageLength+1; }elseif(lruPage[j]==0){ for(intvv=j;vv>0;vv--){ lruPage[vv]=lruPage[vv-1]; } lruPage[1]=lru[i]; j=pageLength+1; flag=1; } } if(flag==1) { } else { cout<<"→淘汰"< for(j=pageLength;j>0;j--){ lruPage[j]=lruPage[j-1]; } lruPage[1]=lru[i]; } cout< for(intjk=1;jk<=pageLength;jk++) { cout<<"P"< } cout< for(ints=1;s<=pageLength;s++){ cout< } cout< } } intmain(void) { LRU(); cout< cout<<"程序测试BY: 金凯"< cout<<""; cout<<"测试结果: 符合最近最少使用页面替换算法的要求和结果"< return0; } 4.心得体会: 通过本次实验,我不仅了解了全局页面替换算法的概念和理论知识,更是掌握了其核心的替换思想。 由全局页面替换算法,我们可以简单地可以算出缺页中断次数和缺页中断率。 当然,页面替换不止实验中的三种,还有第二次机会页面替换算法、时钟页面替换算法等等。 在以后的学习中,应主动的练习和思考。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 第九 实验 主存 空间 分配 回收
