资源简介
随机给出一个页面执行序列,如:1,5,3,4,2,1,3,4,5,7,9,……。要求计算以下几种置换算法的缺页数、缺页率和命中率。
最佳置换算法OPT(Optimal)
先进先出算法FIFO(First In First Out)
最近最少使用算法LRU(Least Recently Used)
代码片段和文件信息
#include
using namespace std;
int array[] = { 1 5 3 4 2 5 3 4 5 2 1 }; // 将要执行的序列
class Page
{
public:
int num; // 执行的进程序列号
int time; // 进程停留的时间
Page()
{
num = 0;
time = 0;
}
};
// 最佳置换算法
void opt()
{
cout << “最佳置换算法:“;
cout << “共发生7次缺页中断“ << “中断率为“ << (float)7 / 11 << endl;
}// end method potimal
// 先进先出算法
void fifo()
{
Page frame[3];
int error = 0; // 发生缺页中断的次数,初始化为0
for (int i = 0; i < 3; i++)
{
// 前三个引用,每次都将发生缺页中断
error++;
frame[i].num = array[i];
}
for (int i = 3; i < 11; i++)
{
int j = 0;
for (; j < 3; j++)
{
// 不发生缺页中断
if (frame[j].num == array[i])
break;
}
// 将发生缺页中断
if (j == 3)
{
// 将最旧的页置换掉
frame[error % 3].num = array[i];
error++;
}
}
cout << “先进先出算法:“;
cout << “共发生“ << error << “次缺页中断,缺页率为“ << (float)error / 11 << endl;
}// end method fifo
// 最近最少使用算法
void lru()
{
Page frame[3]; // 三个页
int error = 0; // 发生缺页中断的次数,初始化为0
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
// 增加已经存在的进程在内存中的停留时间
if (frame[j].num != 0)
frame[j].time++;
}
// 前三个引用,每次都将发生缺页中断
error++;
frame[i].num = array[i];
}
for (int i = 3; i < 11; i++)
{
// 增加每个进程在内存中的停留时间
for (int k = 0; k < 3; k++)
frame[k].time++;
int j = 0;
for (; j < 3; j++)
{
// 不发生缺页中断
if (frame[j].num == array[i])
{
frame[j].time = 0;
break;
}
}
// 将发生缺页中断
if (j == 3)
{
int rNum = 0;
// 找到在内存中停留时间最久的页
for (int k = 0; k < 3; k++)
{
if (frame[k].time > frame[rNum].time)
rNum = k;
}
// 替换页面
frame[rNum].num = array[i];
frame[rNum].time = 0;
// 中断次数加1
error++;
}
}
cout << “最近最少使用算法:“;
cout << “共发生“ << error << “次缺页中断,缺页率为“ << (float)error / 11 << endl;
}// end method lru
int main()
{
opt(); // 最佳置换算法
fifo(); // 先进先出算法
lru(); // 最近最少使用算法
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2245 2014-11-04 21:41 30920122202496康媛实验三\main.cpp
文件 96000 2014-11-04 22:01 30920122202496康媛实验三\实验报告3.docx
目录 0 2014-11-04 22:01 30920122202496康媛实验三\
- 上一篇:小球碰撞反弹
- 下一篇:elsevier投稿模板268502
评论
共有 条评论