資源簡介
操作系統實驗 頁面置換算法 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++實現圖像處理:中值濾波
評論
共有 條評論