四种页面置换算法代码
标签:
•
文件类型: .zip
•
文件大小: 8.49MB
•
下载次数: 1
•
四种页面置换算法齐全,c++上可以直接运用
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-09-06 14:43 四种页面置换算法代码
目录 0 2015-09-06 14:43 四种页面置换算法代码Debug
文件 181248 2015-01-07 10:58 四种页面置换算法代码Debugvc60.idb
文件 143360 2015-01-07 10:58 四种页面置换算法代码Debugvc60.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
#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 四种页面置换算法代码Debugvc60.idb
文件 143360 2015-01-07 10:58 四种页面置换算法代码Debugvc60.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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)