找高手求页面置换算法模拟

来源:百度知道 编辑:UC知道 时间:2024/06/04 06:49:24
要求:
页面置换算法的模拟实现
分别实现最佳置换算法(optimal)、先进先出(FIFO)页面置换算法和最近最久未使用(LRU)置换算法,并给出各算法缺页次数和缺页率。

请发到我的邮箱:jojoyoyo2@163.com

如果调式可以通过的话,还悬赏30分

#include <iostream>
#include <deque>
#include <ctime>
using namespace std;

typedef struct
{
int id; //页面ID
int stayTime; //内存中驻留时间
int unUseTime; //已经多久未被使用
}CPage;
deque<int> RunQueue;
deque<CPage> interPage; //内存中的四个页面
deque<CPage> exterPage; //外存中的N个页面
int presentSeat; //目前运行到了队列的第几个?
int lackNum[3] ={0};
int getRandNum(int range) //返回[0,range)范围内的整数
{
return static_cast<int>(rand()%range);
}
int findPageIdByCmdId(int cmdId) //通过强制转换成整数的形式判断指令属于哪个页面
{
return static_cast<int>(cmdId/10);
}
void InitDevice() //初始化运行队列 按照25% 50% 25%的标准生成
{
srand(static_cast<int>(time(NULL)));
int t_cmdNum = getRandNum(320); //随机选择第一条指令
RunQueue.push_back(t_cmdNum); //将其插入队列<