資源簡介
在一個請求分頁系統中,假如系統分配給一個作業的物理塊數為 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?< if?(iflack){
cout?<‘*‘;
}
cout?<}
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?=?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++)
- 上一篇:PyQt5:pyCharts 繪制餅圖
- 下一篇:VC++ 迷宮游戲
評論
共有 條評論