实验五 虚拟内存页面置换算法 (2) 下载本文

内容发布更新时间 : 2024/6/9 0:17:37星期一 下面是文章的全部内容请认真阅读。

实验五 虚拟内存页面置换算法

问题描述:

设计程序模拟先进先出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 #include using namespace std; const int MaxNum=100;

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>PageOrder[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;iM) { temp=-1; for(int j=0;j