资源简介

在一个请求分页系统中,假如系统分配给一个作业的物理块数为 3,且此作业的页面走向为: 2,3,2,1,5,2,4,5,3,2,3,1 试分别求出用FIFO,LRU,OPT三种算法在程序访问过程中所发生的缺页次数及缺页率?(假设最初页面都在外存)

资源截图

代码片段和文件信息

/*
在一个请求分页系统中,假如系统分配给一个作业的物理块数为 3,且此作业的页面走向为:
2,3,2,1,5,2,4,5,3,2,3,1
试分别求出用FIFO,LRU,OPT三种算法在程序访问过程中所发生的缺页次数及缺页率?(假设最初页面都在外存)
*/
#include
using namespace std;
int need[12] = {232152453231};
int page[3] = {000};
int A=0;
bool iflack;
int lack=0;
int lruA[3];
int optA[3];

void clean(){
for (int i = 0; i < 3; i++)
page[i] = 0;
lack = 0;
A = 0;
}
bool had(int aint t){
for (int i = 0; i < 3; i++)
if (a == page[i]){
lruA[i] = t;
return true;
}
lack++;
return false;
}
int free(){
for (int i = 0; i < 3; i++)
if (page[i] == 0)
return i;
return -1;
}
void show(){
for (int i = 0; i < 3; i++)
cout << page[i] << “  “;
if (iflack){
cout << ‘*‘;
}
cout << endl;
}
void optj(int t){
for (int i = 0; i < 3; i++){
for (int j = t; j < 12; j++){
if (page[i] == need[j]){
optA[i] = j;
break;
}
else{
optA[i] = 13;
}
}
}
}

void FIFO(int a){
page[A] = a;
A++;
if (A == 3)
A = 0;
}
void LRU(int aint t){
int tp = lruA[0];
int ti=0;
for (int i = 1; i < 3; i++)
if (lruA[i] < tp){
tp = lruA[i];
ti = i;
}
page[ti] = a;
lruA[ti] = t;
}
void OPT(int aint t){
int opti = optA[0];
int opta=0;
optj(t);
for (int i = 1; i < 3; i++)

评论

共有 条评论