void Priority() //优先级调度算法
{
int i,j;
//int iCurMin; //当前最短运行时间PCB在数组队列pcbs中的下标
int iCurMin;
// int iCurMinRunTime; //当前优先数
int iCurMinprior;
int iWaitedTime=0; //到调度时刻为止所有末运行进程已等待的时间总和
int iSum; //总等待时间
int iIndex[MAXPCB]; //用于存放排序后进程数组下标的数组队列
iCurMinprior=1000;
for(i=0;i
iCurMinprior=1000;
for(j=0;j
if((pcbs[j].iBeFinished==0)&&(pcbs[j].iPriority< iCurMinprior))
{
iCurMin=j;
iCurMinprior=pcbs[j].iPriority;
}
} //for(j=0;j
iIndex[i]=iCurMin;
pcbs[iCurMin].iBeFinished=1;
pcbs[iCurMin].iWaitTime+=iWaitedTime;
iWaitedTime+=pcbs[iCurMin].iRunTime;
}
//输出优先级调度执行流
cout<
iSum=0;
for(i=0;i
cout<<" "<//输出信息摸拟进程运行
iSum+=pcbs[iIndex[i]].iWaitTime; //累加总等待时间
}
cout<<" 总调度次数:"<
cout<