FIFO页面淘汰算法代码c++
时间: 2023-10-04 22:07:42 浏览: 83
以下是一个简单的FIFO页面淘汰算法的C++代码实现:
```c++
#include <iostream>
#include <queue>
using namespace std;
int main() {
int n, page, faults = 0;
queue<int> q;
cout << "Enter the number of page frames: ";
cin >> n;
cout << "Enter the page reference string (-1 to end): ";
while (true) {
cin >> page;
if (page == -1) {
break;
}
if (q.size() < n) {
q.push(page);
faults++;
} else {
if (q.front() != page) {
q.pop();
q.push(page);
faults++;
}
}
}
cout << "Total page faults: " << faults << endl;
return 0;
}
```
其中,我们使用了一个 `queue` 来表示页面帧队列,通过 `q.size()` 判断队列是否已满,通过 `q.front()` 获取队列头部的页面,通过 `q.pop()` 弹出队列头部的页面。在每次访问页面时,如果队列未满,则将页面加入队列并计数器加一;如果队列已满,且页面不在队列中,则弹出队列头部的页面并将新页面加入队列,计数器加一。最终输出计数器即为页面缺页数。
阅读全文