FIFO算法
FIFO算法是最简单的页面置换算法。FIFO算法为每个页面记录了调到内存的时间。当必须置换页面的时候,选择最旧的页面。
通俗来说,每次进入主存的时候
- 如果主存中不存在这个页面,那么最先进入的页面出队。
- 如果主存存在这个页面,那么内存不动。
下面是C++面向对象写法代码。
这个说明一下为什么不用容器Queue。是因为queue并没有迭代器,所以无法去寻找里面是否含有某块页面。
直接使用线性表即可,方便简单且快速。
// 在分页式虚拟存储管理中,要求通过键盘输入分配给一个作业的物理块数和作业依次访问的10个页面号,
// 采用先进先出(FIFO)页面置换后
// ,顺序输出缺页中断时所淘汰的页面号,并计算缺页中断率。
#include <iostream>
using namespace std;
#define MAX 20
class Work
{
public:
void seta()
{
int c, i = 1;
cout << "输入10个页面号,以任意符号结尾" << endl;
cin >> c;
a[0] = c;
while (cin >> c)
{
a[i] = c;
i++;
}
}
void geta()
{
cout << "10个页面号分别为: ";
for (int i = 0; i < 10; i++)
{
cout << a[i] <<