资源简介
操作系统实验五 虚拟内存页面置换算法(内含源代码和详细实验报告),详细介绍:http://blog.csdn.net/xunciy/article/details/79239096

代码片段和文件信息
#include
#include
#include
using namespace std;
#define MaxNumber 100
int MinBlockNumPageNumLackNumLackPageNum; //物理块数,页面个数,缺页次数,缺页数
double LackPageRate; //缺页率
int PageOrder[MaxNumber]; //页面序列
int PageDisCount[MaxNumber]; //当前内存距离下一次出现的距离
int LRUtime[MaxNumber]; //存储队列中各个页面最近使用情况
int VirtualQueue[MaxNumber]; //虚拟队列
void Enter(); //输入物理块数、页面号顺序
void initial(); //模拟物理块顺序被填满,初始化物理块
void FIFO(); //先进先出FIFO
void OPI(); //最佳置换OPI
void LRU(); //最近最久未使用LRU
void display(); //显示执行结果
int main(){
Enter();
// initial();
FIFO();
OPI();
LRU();
return 0;
}
void Enter(){
int i;
cout<<“Enter MinBlockNum: “;
cin>>MinBlockNum;//输入最小物理块数
cout<<“Enter PageNum: “;
cin>>PageNum;//输入页面个数
//输入页面序列
cout<<“Enter PageOrder: “;
for (i=0;i cin>>PageOrder[i];
}
}
void initial(){
int ijk;
bool isInQueue;
LackPageNum = MinBlockNum;//缺页数=物理块数+缺页次数
LackPageRate = 0.0;
for(i = 0;i PageDisCount[i] = 0; //初始化距离
VirtualQueue[i] = -1; //初始化队列
}
for (i = 0;i isInQueue = false;
LRUtime[i] = 0;
for (j = 0;j if (VirtualQueue[j] == PageOrder[i])//如果页面在队列中
isInQueue = true;
}
if (!isInQueue){ //当有新的进程进入到队列时,便计算其对应的距离
VirtualQueue[i] = PageOrder[i];//小于物理块数时,页面顺序进入队列
for (k = 0;k LRUtime[k]++; //之前的页面对应的时间+1
}
display();
}
else
LRUtime[i] = 0; //重新更新为0,表示最近刚刚使用
}
}
void display(){
int i;
for (i = 0;i=0;i++)
cout< cout< }
void FIFO(){
cout< int ik;
cout<<“FIFO“< initial();
bool isInQueue;
int point = 0; //指向队列中最老的
//从物理块数+1的地方开始继续分配内存
for (i = MinBlockNum;i isInQueue = false;
for (k = 0;k if (VirtualQueue[k] == PageOrder[i]){ //页面在队列中
isInQueue = true;
}
}
if (!isInQueue){ //如果页面不在队列中,则进行相应的处理
LackPageNum++; //缺页数加1
VirtualQueue[point] = PageOrder[i];//页面替换队列中最老的
display();//输出物理块状态
point++;//后移
if (point == MinBlockNum)//当指向队尾时后,重新指向队首
point = 0;
}
else
cout< }
LackPageRate = (LackPageNum * 1.0)/PageNum;
cout<<“LackPageNum: “< cout<<“LackPageRate: “<
}
void OPI(){
cout< int ikmst;
cout<<“OPI“< initial();
bool isInQueue;
int distance; //表示队列每个值距离下一次访问的距离
int point; //指向最长时间未被访问的下标
for(i = MinBlockNum;i
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-02-02 14:31 实验五 虚拟内存页面置换算法\
目录 0 2018-02-02 14:27 实验五 虚拟内存页面置换算法\5.FIFO_OPI_LRU\
文件 6019 2017-12-28 22:11 实验五 虚拟内存页面置换算法\5.FIFO_OPI_LRU\FIFO_OPI_LRU.cpp
文件 1050111 2017-12-20 19:54 实验五 虚拟内存页面置换算法\5.FIFO_OPI_LRU\FIFO_OPI_LRU.exe
文件 5823 2017-12-20 19:54 实验五 虚拟内存页面置换算法\5.FIFO_OPI_LRU\FIFO_OPI_LRU.o
文件 100931 2017-12-28 22:41 实验五 虚拟内存页面置换算法\实验五 虚拟内存页面置换算法.docx
- 上一篇:操作系统实验二 时间片轮转RR进程调度算法
- 下一篇:汇编语言实验二英文打字练习软件
相关资源
- 升腾Win终端系统升级方法新版.doc
- Uninstall_Cortana_WINCLIENT.CN.rar
- STM32基于rt_thread操作系统的SDHC卡文件
- 操作系统 LRU算法 实验报告 及 程序代
- [免费]车载CE6.0操作系统
- 分页系统模拟实验 操作系统 课程设
- 模拟段页式虚拟存储管理中地址转换
- 操作系统实验——虚存管理实验
- 广工操作系统实验
- 广东工业大学操作系统实验四文件系
- Bochs入门教程[操作系统第一步]
- 操作系统课程设计完整版
- 磁盘调度算法的模拟实现及对比
- 模拟一个文件管理系统
- 二级文件系统(操作系统)
- uCOS编译环境建立 BC45 TASM
- Linux 操作系统实验(全)
- 操作系统实验综合设计【附代码】
- 操作系统共享内存实验
- 操作系统循环首次适应算法
- 操作系统课程设计实现可变分区存储
- 基于GTK的Linux环境下的简易任务管理器
- 操作系统课程设计 二级文件管理系统
- 加快Windows XP操作系统开机速度
- 操作系统教程课后答案华中科技大学
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 嵌入式实时操作系统ucos-II 第二版 源
- 计算机操作系统课后_汤小丹_第四版
- 计算机操作系统(第四版)汤小丹课
评论
共有 条评论