欢迎来到天天文库
浏览记录
ID:46812729
大小:69.24 KB
页数:19页
时间:2019-11-28
《实验六 虚拟内存页面置换算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、甘肃政法学院本科生实验报告(六)姓名:马晓娟学院:公安技术学院专业:信息安全班级:2013级信息安全实验课程名称:实验日期:2015年12月2日指导教师及职称:王云峰实验成绩:开课时间:2015-2016学年第一学期甘肃政法学院实验管理中心印制实验题目虚拟内存页面置换算法小组合作否姓名马晓娟班级2013级信息安全学号201383030125一、实验目的通过这次实验,加深对虚拟内存页面置换概念的理解,进一步掌握先进先出FIFO,最佳置换OPI和最近最久未使用LRU页面置换算法的实现方法。二.实验环境C++环境三、实验内容与步骤问题描述:设计程序模拟先进先出FIFO,最佳置换OPI
2、和最近最久未使用LRU页面置换算法的工作过程。假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个数为n,页面访问序列为P1,…,Pn,分别利用不同的页面置换算法调度进程的页面访问序列,给出页面访问序列的置换过程,计算每种算法缺页次数和缺页率。程序要求如下:1)利用先进先出FIFO,最佳置换OPI和最近最久未使用LRU三种页面置换算法模拟页面访问过程。2)模拟三种算法的页面置换过程,给出每个页面访问时的内存分配情况。3)输入:最小物理块数m,页面个数n,页面访问序列P1,…,Pn,算法选择1-FIFO,2-OPI,3-LRU。4)输出:每种算法的缺页次数和
3、缺页率。【实验要求】1)上机前认真复习页面置换算法,熟悉FIFO,OPI,LRU三种页面分配和置换算法的过程;2)上机时独立编程、调试程序;3)根据具体实验要求,完成好实验报告(包括实验的目的、内容、要求、源程序、实例运行结果截图)。【源代码】#include"iostream.h"constintDataMax=100;constintBlockNum=10;intDataShow[BlockNum][DataMax];//用于存储要显示的数组boolDataShowEnable[BlockNum][DataMax];//用于存储数组中的数据是否需要显示//intData[D
4、ataMax]={4,3,2,1,4,3,5,4,3,2,1,5,6,2,3,7,1,2,6,1};//测试数据//intN=20;//输入页面个数intData[DataMax];//保存数据intBlock[BlockNum];//物理块intcount[BlockNum];//计数器intN;//页面个数intM;//最小物理块数intChangeTimes;voidDataInput();//输入数据的函数voidDataOutput();voidFIFO();//FIFO函数voidOptimal();//Optimal函数voidLRU();//LRU函数///*i
5、ntmain(intargc,char*argv[]){DataInput();//DataInput();//FIFO();//Optimal();//LRU();//return0;intmenu;while(true){cout<6、"*0-EXIT*"<>menu;switch(menu){case1:FIFO();break;case2:Optimal();break;case3:LRU();break;default:break;}if(menu!=1&&menu!=2&&menu!=3)break;}}//*/voidDataInput(){cout<<"请输入最小物理块数:";cin>>M;while(M>BlockNum)//大于数据个数7、{cout<<"物理块数超过预定值,请重新输入:";cin>>M;}cout<<"请输入页面的个数:";cin>>N;while(N>DataMax)//大于数据个数{cout<<"页面个数超过预定值,请重新输入:";cin>>N;}cout<<"请输入页面访问序列:"<>Data[i];}voidDataOutput(){inti,j;for(i=0;i
6、"*0-EXIT*"<>menu;switch(menu){case1:FIFO();break;case2:Optimal();break;case3:LRU();break;default:break;}if(menu!=1&&menu!=2&&menu!=3)break;}}//*/voidDataInput(){cout<<"请输入最小物理块数:";cin>>M;while(M>BlockNum)//大于数据个数
7、{cout<<"物理块数超过预定值,请重新输入:";cin>>M;}cout<<"请输入页面的个数:";cin>>N;while(N>DataMax)//大于数据个数{cout<<"页面个数超过预定值,请重新输入:";cin>>N;}cout<<"请输入页面访问序列:"<>Data[i];}voidDataOutput(){inti,j;for(i=0;i
此文档下载收益归作者所有