当前位置:首页 > 动态优先权的进程调度算法模拟
if(RUNOUT[i][0]>=0)
printf(\else{ printf(\break; } }
printf(\}
int getRunning() { int i;
for(i=0;i if(Process[i].State==Run) return i; } for(i=0;i if(Process[i].Startblock==0) return i; } return -1; } void sort()//作用是排序,找出就绪队列和阻塞队列分别放入READY[] ,BLOCK[] { int i,j,k; for(i=0;i READY[i]=-1; BLOCK[i]=-1; } for(i=0;i if(Process[i].State==Ready||Process[i].State==Run) { if(Process[i].Alltime==0) continue; 第 5 页 华北科技学院计算机系综合性实验报告 for(j=0;j if(READY[j]<0) { READY[j]=i; break; } else if(Process[i].Priority<=Process[READY[j]].Priority) { continue; } else { for(k=N-1;k>j;--k) { READY[k]=READY[k-1]; } READY[j]=i; break; } } } else if(Process[i].State==Block)//找出阻塞队列放入BLOCK[]中 { for(j=0;j if(BLOCK[j]<0) { BLOCK[j]=i; break; } else if(Process[i].Blocktime>=Process[BLOCK[j]].Blocktime) { continue; } else { for(k=N-1;k>j;--k) { BLOCK[k]=BLOCK[k-1]; } BLOCK[j]=i; break; } } } } } int run(int time) { 第 6 页 华北科技学院计算机系综合性实验报告 int i,runNum;//run的次数 runNum=READY[0]; if(runNum<0&&BLOCK[0]<0) { printf(\return 1; }
共分享92篇相关文档