资源简介
四种页面置换算法齐全,c++上可以直接运用
代码片段和文件信息
#include
#include
#include //为了有时间间隔输出
using namespace std;
#define BlockSize 10//内存页面最多为10
#define maxPageSize 100//要运行页面最多为100
int PageSize;//由用户输入逻辑页面最大值
int page[maxPageSize]; //页面数组存放页面
int block[BlockSize]; //物理块数组
int result[maxPageSize][BlockSize]; //存放页面和物理块二维数组
int pSize = 0; //用户使用页面数
int bSize = 0; //用户使用物理块数
int blockFlag[BlockSize]; //用于LRU与OPT中,辅助判断该换出的页面
int noPageCount = 0; //缺页次数
int everytime[maxPageSize]; //每一个运行页面的存取时间
int breaktime; //缺页中断时间
int memorytime; //内存存取时间
int checktime; //查询一次快表时间
int kuaior; //是否存在快表
int count[maxPageSize]; //用于LFU中,使用次数记录数组
void inputData()//输入数据
{
cout< cin>>bSize;
cout<<“请输入逻辑页面最大数“< cin>>PageSize;
cout<<“请输入页面数 (1<=pSize<=“< cin>>pSize;
while(bSize<=0||bSize>BlockSize||pSize<=0||pSize>PageSize){//判断用户输入是否在范围内
cout<<“输入范围错误,请重新输入:“< cout<<“请输入物理块数(1<=F<=“< cin>>bSize;
cout< cin>>pSize;
}
cout<<“请输入页面走向“< for(int i = 0;i cin>>page[i];//用户输入的页面序列
cout<<“请输入内存存取时间“< cin>>memorytime;
cout<<“请输入缺页中断时间“< cin>>breaktime;
cout<<“请输入是否存在快表(0.否 1.是 )“< cin>>kuaior;
if(kuaior==1)
{
cout<<“请输入查询一次快表时间“< cin>>checktime;
}
}
//初始化page数组
void initPage()
{
for(int i = 0;i page[i] = -1; //初始化page数组中的数都为-1
}
//初始化block与result数组
void initBlockResult()
{
int i = 0;
for(i = 0;i block[i] = -1;//初始化物理数组中的数都为-1
for(i = 0;i < PageSize;i++)
for(int j = 0; j < BlockSize;j++)
result[i][j] = -1;//存放页面和物理块二维数组初始化为-1
}
//查找物理块中是否存在要调用的页面
int Exist(int i)
{
for(int j = 0;j < bSize;j++)
if(block[j] == i)
return j;
return -1;
}
//显示结果
void display(int noPageCount)
{
for(int i =0 ;i < pSize;i++)
{
Sleep(2000);
cout<<“ “< for(int j = 0;j < bSize;j++)
{
if(result[i][j] == -1)
break;
else
cout<<‘[‘< }
cout< }
cout< cout<<“每个页面的存取时间为:“< for(i =0 ;i < pSize;i++)
{
cout< }
cout<<“____________________________________“< cout< cout<<“缺页率:“<<((double)noPageCount/pSize)*100<<‘%‘< cout<<“====================================“< }
//最佳置换算法OPT
void OPT()
{
int i = 0j = 0;
int position = 0noPageCount = 0;
int pageFlag = 0resultFlag = 0; //页面标记(下标)指向下一个页面结果标记表示结果的行,即result数组的行标
for(i = 0;i < BlockSize;i++)
blockFlag[i] = 0;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-09-06 14:43 四种页面置换算法代码\
目录 0 2015-09-06 14:43 四种页面置换算法代码\Debug\
文件 181248 2015-01-07 10:58 四种页面置换算法代码\Debug\vc60.idb
文件 143360 2015-01-07 10:58 四种页面置换算法代码\Debug\vc60.pdb
文件 565328 2015-01-07 10:58 四种页面置换算法代码\Debug\算法.exe
文件 809120 2015-01-07 10:58 四种页面置换算法代码\Debug\算法.ilk
文件 284490 2015-01-07 10:58 四种页面置换算法代码\Debug\算法.obj
文件 1139 2015-01-12 08:51 四种页面置换算法代码\测试序列.txt
文件 11406 2015-01-08 11:07 四种页面置换算法代码\算法.cpp
文件 3379 2015-01-07 10:58 四种页面置换算法代码\算法.dsp
文件 516 2015-01-07 11:14 四种页面置换算法代码\算法.dsw
文件 41984 2015-01-07 11:14 四种页面置换算法代码\算法.ncb
文件 0 2015-01-08 09:26 四种页面置换算法代码\算法.opensdf
文件 48640 2015-01-07 11:14 四种页面置换算法代码\算法.opt
文件 744 2015-01-07 10:58 四种页面置换算法代码\算法.plg
文件 27676672 2015-01-08 11:08 四种页面置换算法代码\算法.sdf
文件 6111 2015-01-08 09:26 四种页面置换算法代码\算法.vcxproj
文件 143 2015-01-08 09:26 四种页面置换算法代码\算法.vcxproj.user
相关资源
- 操作系统—页面置换算法C++实现
- c++页面置换算法模拟程序-
- 页面置换算法OPT、FIFO、LRU实现--C++版
- 操作系统 C++ 页面置换算法含实验报告
- OS_页面置换算法实验c++程序代码
- 操作系统3种页面置换算法 C++实现
- 5种页面置换算法C++实现
- C语言实现Optimal、FIFO、LRU页面置换算
- 页面置换算法实验 通过编写和调试存
- 页面置换算法最佳,FIFO,LRU,随机,
- 页面置换算法OPT、FIFO、LRU实现--C++版
- C语言实现页面置换算法
- 存储管理页面置换算法C语言实现
- 页面置换算法模拟
- 页面置换六种算法c语言实现
- 五种页面置换算法mfc版
- 页面置换算法OPT+FIFO+LRU+clock
评论
共有 条评论