資源簡介
一個(gè)最基本的實(shí)現(xiàn)..很多內(nèi)容沒有考慮,大家可以在這個(gè)基礎(chǔ)上再添加自己需要的操作
代碼片段和文件信息
#include?
using?namespace?std;
int?i; //循環(huán)數(shù)
int?pNUM=5; //進(jìn)程數(shù)
struct?PCB //聲明結(jié)構(gòu)體PCB
{
int?id;
int?p; //priority
int?cputime; //進(jìn)程占用CPU時(shí)間
int?alltime; //進(jìn)程還需要占用CPU的時(shí)間
int?state; //0=就緒?1=完成
}process[5]={{19030}{218030}{330030}{413030}{524030}};
//定義結(jié)構(gòu)體數(shù)組變量process[]并初始化
int?maxp()?????????????????????? //求出優(yōu)先權(quán)最高的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() //下一次調(diào)度的狀態(tài)
{
int?m=maxp();
for(i=0;i if(process[i].id==m) //判斷是否為優(yōu)先權(quán)最高ID
{
process[i].p=process[i].p-3; //優(yōu)先權(quán)最高ID的優(yōu)先權(quán)-3
process[i].cputime++; //cuptime+1
process[i].alltime--; //alltime-1
if(process[i].alltime==0) //判斷是否還需要占用CPU
{
process[i].state=1; //如果已完成,state=1——完成狀態(tài)
process[i].p=0; //優(yōu)先權(quán)清零
}
}
else
if(process[i].
評(píng)論
共有 條評(píng)論