资源简介
操作系统实验 页面置换算法 c++程序代码 缺页次数 缺页率 物理块 FIFO置换算法 LRU置换算法 最佳置换算法
代码片段和文件信息
#include
void Print(int bc[]int blockCount)
{
for(int i=0;i {
printf(“%d “bc[i]);
}
printf(“\n“);
}
bool Travel(int bc[]int blockCountint x)
{
bool is_found=false;
int i;
for(i=0;i {
if(bc[i]==x)
{
is_found=true;
break;
}
}
return is_found;
}
void FIFO(int pc[]int bc[]int pageCountint blockCount)
{
printf(“0:FIFO置换算法\n“);
int i;
if(pageCount<=blockCount)
{
printf(“缺页次数为0\n“);
printf(“缺页率为0\n“);
}
else
{
int noPage=0;
int p=0;
for(i=0;i {
//printf(“引用页:%d\n“pc[i]);
if(!Travel(bcblockCountpc[i]))
{
if(i {
bc[i]=pc[i];
}
else
{
if(p==blockCount)
{
p=0;
}
bc[p]=pc[i];
p++;
}
noPage++;
//printf(“物理块情况:\n“);
//Print(bcblockCount);
}
//printf(“\n“);
}
printf(“FIFO缺页次数为:%d\n“noPage);
printf(“FIFO缺页率为:%.2f%%\n“(float)noPage/pageCount*100);
}
}
int FoundMaxNum(int a[]int n)
{
int kj;
k=a[0];
j=0;
for (int i=0;i {
if(a[i]>=k)
{
k=a[i];
j=i;
}
}
return j;
}
void LRU(int pc[]int bc[]int pageCountint blockCount)
{
printf(“1:LRU置换算法\n“);
if(pageCount<=blockCount)
{
printf(“缺页次数为0\n“);
printf(“缺页率为0\n“);
}
else
{
int noPage=0;
int ijm;
int bc1[100];
for(i=0;i {
bc1[i]=0;
}
for(i=0;i {
// printf(“引用页:%d\n“pc[i]);
if(!Travel(bcblockCountpc[i]))
{
if(i {
bc[i]=pc[i];
for(int p=0;p<=i;p++)
{
bc1[p]++;
}
}
else
{
for(j=0;j {
bc1[j]++;
}
int k=FoundMaxNum(bc1blockCount);
- 上一篇:mfc调用webservice的客户端
- 下一篇:vc++实现图像处理:中值滤波
相关资源
- Matrix.h 和 Matrix.cppC++ 实现矩阵操作
- 文件读写的三种方式比较.cpp
- 日历管理系统.cpp
- 文件目录管理系统.cpp
- HOUGH_LINE.cpp
- UserApp.cpp
- 在opencv中将两个图像给融合,让图像
- 基于顺序表的学生信息管理系统.cpp
- 遗传算法求解混合流水车间调度问题
- 动态规划最短路径.cpp
- 一定经纬范围的墨卡托投影.cpp
- 源.cpp
- Steffensen.cpp
- WebPage.h和WebPage.cpp
- listing_4.1.cpp
- 5.1归并递归排序.cpp
- 家谱管理系统.cpp
- 文章编辑系统源代码.cpp
- 段页式存储管理地址转换.cpp
- 302_规格划分矩形.cpp
- C++ Serialport 串口通信类
- openCV中stitching_detailed.cpp
- L.CPP
- MFC操作Excel表,excel.hexcel.cpp源码
- 用c++模拟直线插补和圆弧插补二.cpp
- 用c++模拟直线插补和圆弧插补一.cpp
- test_opencv.cpp
- 2.Newton插值公式.cpp
- 支持多标签的convert_imageset.cpp代码
- dft.cpp
评论
共有 条评论