資源簡介
一個最基本的實現..很多內容沒有考慮,大家可以在這個基礎上再添加自己需要的操作
代碼片段和文件信息
#include?
using?namespace?std;
int?i; //循環數
int?pNUM=5; //進程數
struct?PCB //聲明結構體PCB
{
int?id;
int?p; //priority
int?cputime; //進程占用CPU時間
int?alltime; //進程還需要占用CPU的時間
int?state; //0=就緒?1=完成
}process[5]={{19030}{218030}{330030}{413030}{524030}};
//定義結構體數組變量process[]并初始化
int?maxp()?????????????????????? //求出優先權最高的ID
{
int?maxpID=process[0].id;
int?pValue=process[0].p;
for(i=1;i if(process[i].p>pValue)
{
maxpID=process[i].id;
pValue=process[i].p;
}
return?maxpID;
}
void?next() //下一次調度的狀態
{
int?m=maxp();
for(i=0;i if(process[i].id==m) //判斷是否為優先權最高ID
{
process[i].p=process[i].p-3; //優先權最高ID的優先權-3
process[i].cputime++; //cuptime+1
process[i].alltime--; //alltime-1
if(process[i].alltime==0) //判斷是否還需要占用CPU
{
process[i].state=1; //如果已完成,state=1——完成狀態
process[i].p=0; //優先權清零
}
}
else
if(process[i].
- 上一篇:如何在keil中查看程序執行時間
- 下一篇:員工管理系統源程序MFC+報告
評論
共有 條評論