当前位置:文档之家› 操作系统实验进程调度算法

操作系统实验进程调度算法

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<cout<<" 优先级调度执行流:"<cout<<" 序号 进程名 运行时间 等待时间"<
iSum=0;

for(i=0;i{
cout<<" "<//输出信息摸拟进程运行
iSum+=pcbs[iIndex[i]].iWaitTime; //累加总等待时间
}

cout<<" 总调度次数:"<cout<<" 总等待时间:"<printf(" 平均等待时间 %.2f\n",(float)iSum / (float)iPCBNum);

cout<} //void Priority()

相关主题
文本预览
相关文档 最新文档