FIFO页面置换算法代码
时间: 2024-06-11 20:02:23 浏览: 107
FIFO页面置换算法是一种简单的页面置换算法,它将最先进入内存的页面置换出去。这种算法的实现非常简单,只需要维护一个队列,每次页面置换时,将队列中最先进入的页面置换出去即可。
以下是FIFO页面置换算法的C++代码实现:
```c++
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n>>m;//n代表内存大小,m代表页面序列长度
vector<int> page(m);
for(int i=0;i<m;i++){
cin>>page[i];//读入页面序列
}
unordered_set<int> cache;//维护内存中的页面集合
queue<int> q;//维护内存中的页面顺序,队列头部表示最先进入内存的页面
int cnt=0;//记录页面置换次数
for(int i=0;i<m;i++){
if(cache.find(page[i])!=cache.end()){//页面已经在内存中
continue;
}
cnt++;//页面置换次数加一
if(cache.size()==n){//内存已满,需要进行页面置换
int victim=q.front();//获取队列头部的页面
q.pop();//将队列头部的页面移除
cache.erase(victim);//将被置换的页面从内存中移除
}
cache.insert(page[i]);//将新页面插入内存中
q.push(page[i]);//将新页面加入队列尾部
}
cout<<cnt<<endl;//输出页面置换次数
return 0;
}
```
阅读全文