#include <iostream> #define N 10 using namespace std; int main() { int ym[] = {4,3,2,1,4,3,5,4,3,2,1,5}; int sum = 12; int allchangetimes = 0; int fifo[N] = {0}; int n, dq = 0; cout << "输入页框大小:"; cin >> n; for (int i = n-1; i >= 0; i--) { fifo[i] = ym[dq++]; } for (int i = 0; i < n; i++) { cout << fifo[i] << " "; } cout << endl; for (int j = n; j < sum; j++) { int flag = 0; for (int i = 0; i < n; i++) { if (fifo[i] == ym[j]) { flag = 1; break; } } if (flag == 0) { allchangetimes++; } for (int i = n-1; i >= 1; i--) { fifo[i] = fifo[i-1]; } fifo[0] = ym[j]; for (int i = 0; i < n; i++) { cout << fifo[i] << " "; } cout << endl; } cout << "缺页" << allchangetimes << "次," << "置换" << allchangetimes << "次" << endl; return 0; }添加代码注释
时间: 2023-06-19 19:10:01 浏览: 97
#include <iostream>
```
#include <iostream> // 引入iostream库,cin和cout需要使用
#define N 10 // 定义常量N,表示页框大小
using namespace std; // 使用命名空间std
int main() {
int ym[] = {4,3,2,1,4,3,5,4,3,2,1,5}; // 定义数组ym,表示页面序列
int sum = 12; // 定义变量sum,表示页面序列长度
int allchangetimes = 0; // 定义变量allchangetimes,表示总缺页数
int fifo[N] = {0}; // 定义数组fifo,表示FIFO算法中的页框
int n, dq = 0; // 定义变量n,表示页框大小;dq表示当前页面的下标
cout << "输入页框大小:"; // 输出提示信息
cin >> n; // 获取用户输入
for (int i = n-1; i >= 0; i--) { // 初始化页框
fifo[i] = ym[dq++]; // 将页面序列中的页面存入页框
}
for (int i = 0; i < n; i++) { // 输出初始化后的页框
cout << fifo[i] << " ";
}
cout << endl;
for (int j = n; j < sum; j++) { // 从第n个页面开始遍历
int flag = 0; // 定义变量flag,表示当前页面是否在页框中出现过
for (int i = 0; i < n; i++) { // 遍历页框
if (fifo[i] == ym[j]) { // 如果当前页面在页框中出现过
flag = 1; // 将flag标记为1
break; // 跳出循环
}
}
if (flag == 0) { // 如果当前页面在页框中没有出现过
allchangetimes++; // 缺页次数加1
}
for (int i = n-1; i >= 1; i--) { // 将页框中的页面向后移动一位
fifo[i] = fifo[i-1];
}
fifo[0] = ym[j]; // 将当前页面存入页框的第一个位置
for (int i = 0; i < n; i++) { // 输出当前页框中的页面
cout << fifo[i] << " ";
}
cout << endl;
}
cout << "缺页" << allchangetimes << "次," << "置换" << allchangetimes << "次" << endl; // 输出总缺页数和总置换次数
return 0; // 返回0
}
```
阅读全文