欢迎来到天天文库
浏览记录
ID:14137360
大小:107.00 KB
页数:9页
时间:2018-07-26
《操作系统实验4(虚拟内存页面置换算法)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、操作系统实验报告四【实验题目】虚拟内存页面置换算法【实验目的】通过这次实验,加深对虚拟内存页面置换概念的理解,进一步掌握先进先出FIFO,最佳置换OPI和最近最久未使用LRU页面置换算法的实现方法。【实验内容】问题描述:设计程序模拟先进先出FIFO,最佳置换OPI和最近最久未使用LRU页面置换算法的工作过程。假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个数为n,页面访问序列为P1,…,Pn,分别利用不同的页面置换算法调度进程的页面访问序列,给出页面访问序列的置换过程,计算每种算法缺页次数和缺页率。程序要求如下:1)利
2、用先进先出FIFO,最佳置换OPI和最近最久未使用LRU三种页面置换算法模拟页面访问过程。2)模拟三种算法的页面置换过程,给出每个页面访问时的内存分配情况。3)输入:最小物理块数m,页面个数n,页面访问序列P1,…,Pn,算法选择1-FIFO,2-OPI,3-LRU。4)输出:每种算法的缺页次数和缺页率。【实验要求】1)上机前认真复习页面置换算法,熟悉FIFO,OPI,LRU三种页面分配和置换算法的过程;2)上机时独立编程、调试程序;3)根据具体实验要求,完成好实验报告(包括实验的目的、内容、要求、源程序、实例运行结果截图)。【源代码】//--
3、-------------YeMianZhiHuan.cpp-----------------#include"iostream.h"constintDataMax=100;constintBlockNum=10;intDataShow[BlockNum][DataMax];//用于存储要显示的数组boolDataShowEnable[BlockNum][DataMax];//用于存储数组中的数据是否需要显示//intData[DataMax]={4,3,2,1,4,3,5,4,3,2,1,5,6,2,3,7,1,2,6,1};//测试数据//
4、intN=20;//输入页面个数intData[DataMax];//保存数据intBlock[BlockNum];//物理块intcount[BlockNum];//计数器intN;//页面个数intM;//最小物理块数intChangeTimes;voidDataInput();//输入数据的函数voidDataOutput();voidFIFO();//FIFO函数voidOptimal();//Optimal函数voidLRU();//LRU函数///*intmain(intargc,char*argv[]){DataInput();/
5、/DataInput();//FIFO();//Optimal();//LRU();//return0;intmenu;while(true){cout<6、*******************************************************"<>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)//大于数据个数{cout<<7、"物理块数超过预定值,请重新输入:";cin>>M;}cout<<"请输入页面的个数:";cin>>N;while(N>DataMax)//大于数据个数{cout<<"页面个数超过预定值,请重新输入:";cin>>N;}cout<<"请输入页面访问序列:"<>Data[i];}voidDataOutput(){inti,j;for(i=0;i8、or(i=0;i
6、*******************************************************"<>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)//大于数据个数{cout<<
7、"物理块数超过预定值,请重新输入:";cin>>M;}cout<<"请输入页面的个数:";cin>>N;while(N>DataMax)//大于数据个数{cout<<"页面个数超过预定值,请重新输入:";cin>>N;}cout<<"请输入页面访问序列:"<>Data[i];}voidDataOutput(){inti,j;for(i=0;i8、or(i=0;i
8、or(i=0;i
此文档下载收益归作者所有