int HRN(struct Pro a[],int pre,int n) //优先权的判断 {
int current=1,i,j;/* 优先权 =(等待时间+服务时间)/服务时间*/ for(i=0; i a[i].wait_time=a[pre].finish_time-a[i].creat_time; /*等待时间 =上一个进程的完成时间-该进程的创建时间*/ a[i].priority=(a[i].wait_time+a[i].serve_time)/a[i].serve_time; } for(i=0; i for( j=i; j if( !a[j].finish) /* 还没完成(运行)*/ { if(a[current].creat_time<=a[pre].finish_time) /*如果进程在上if(!a[i].finish) { } current=i; /*找到第一个还没完成的进程*/ break; 一个进程完成之前创建*/ { if(a[j].creat_time<=a[pre].finish_time && a[j].priority>a[current].priority ) current=j;/* 找出创建时间在上一个进程完成之前,优先权高 的进程*/ } 8 */ } else /* 如果进程是在上一个进程完成之后创建*/ {

