内容发布更新时间 : 2024/12/25 13:11:57星期一 下面是文章的全部内容请认真阅读。
实验五 虚拟内存页面置换算法
问题描述:
设计程序模拟先进先出FIFO,最佳置换OPI和最近最久未使用LRU页面置换算法的工作过程。假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个数为n,页面访问序列为P1, … ,Pn,分别利用不同的页面置换算法调度进程的页面访问序列,给出页面访问序列的置换过程,计算每种算法缺页次数和缺页率。
程序要求如下:
1)利用先进先出FIFO,最佳置换OPI和最近最久未使用LRU三种页面置换算法模拟页面访问过程。
2)模拟三种算法的页面置换过程,给出每个页面访问时的内存分配情况。
3)输入:最小物理块数m,页面个数n,页面访问序列P1, … ,Pn,算法选择1-FIFO,2-OPI,3-LRU。
4)输出:每种算法的缺页次数和缺页率。
代码实现:
#include
int PageShow[MaxNum][MaxNum];
bool DataShowEnable[MaxNum][MaxNum]; int PageOrder[MaxNum];//页面访问序列 int Block[MaxNum];//物理块序列 int count[MaxNum];//计数器 int PageNum,BlockNum;
int M,N;//最小物理块数,页面数 int ChangeTimes;
void inputData() { cout<<\请输入最小物理块数M: \ cin>>BlockNum; M=BlockNum; cout<<\请输入页面的个数: \ cin>>PageNum; N=PageNum; cout<<\请设置页面访问顺序(此部分由文件读入)。\ fstream fin(\ for(int i=0;i
void showData() { cout<<\显示配=============================\\n\ cout<<\最小物理块数M为:\页面个数为N:\ cout<<\页面访问序列为: \ for(int i=0;i void outputData() { for(int i=0;i 置信息 cout<<\ \ } cout< void FIFO() { bool find; int point; int temp;//临时变量 ChangeTimes=0; for(int i=0;i 页