操作系统页面置换算法实验报告
实验源码:
#include \#include
#define DataMax 100 // 常量DataMax
#define BlockNum 10 // 常量BlockNum
int DataShow[BlockNum][DataMax]; // 用于存储要显示的数组
bool DataShowEnable[BlockNum][DataMax]; // 用于存储数组中的数据是否需要显示
int Data[DataMax]; // 保存数据 int Block[BlockNum]; // 物理块 int count[BlockNum]; // 计数器 int N; // 页面个数 int M; // 最小物理块
数
int ChangeTimes; // 缺页次数
void DataInput(); // 输入数据的函数
void DataOutput(); 的函数
void FIFO(); void Optimal(); 数
void LRU();
int main(int argc, char* argv[]) { DataInput(); int menu; while(true) {
printf(\ *\\n\
// 输出数据// FIFO 函数 // Optimal函// LRU函数 菜单选择
printf(\
***\\n\
printf(\ 1-Optimal
*\\n\
printf(\ 2-FIFO
*\\n\
printf(\ 3-LRU
*\\n\
printf(\ 4-返回上一级
*\\n\
printf(\ 0-EXIT
*\\n\
printf(\
***\\n\
scanf(\
switch(menu) {
case 1:
Optimal(); break;
case 2:
FIFO();
break;
case 3: LRU();
break;
case 0: exit(0);
break;
case 4: system(\ DataInput();
break;
}
if(menu != 1 && menu != 2 && menu != 3 menu != 0 && menu !=4) { system(\
printf(\请输入0 - 4之间的整数!\\n\ continue;
}
}
return 0;
&&
}
void DataInput() { int i,choice;
printf(\请输入最小物理块数:\ scanf(\
// 输入最小物理块数大于数据个数 while(M > BlockNum) { printf(\物理块数超过预定值,请重新输入: scanf(\
}
printf(\请输入页面的个数:\ scanf(\
// 输入页面的个数大于数据个数 while(N > DataMax) { printf(\页面个数超过预定值,请重新输入: scanf(\
}
\\