/*
非抢占式高优先级调度算法(优先数越大级别越高)
算法思想:
在按进程达到时间由小到大的顺序输入进程信息后,
先对其优先数进行排列,
将
最先到达的进程的到达时间设为开始时间,计算结束时间,
然后对后面到达的时间与该进程的结束时间进行比较,如若小于该进程的结束
时间,记录进程的个数,再对其优先数逐个进行比较,将优
先数最大的提到前面,
每次进程结束都要进行比较,
得到执行序列,
在依次输出
结果
*/
#include<>
#define MAX 100
struct hrfs
{
char name[10];
float arrvitetime;
float starttime;
float servietime;
float finishtime;
int priority;riority;
j=1;
while((j
if(p[j].priority>p[i].priority){
max_priority=p[j].priority;
i=j;
}
j++;
}
k=i;
p[k].starttime=p[k].arrvitetime;inishtime=p[k].starttime+p[k].servietime;
p[k].run_flag=1;
temp_time=p[k].finishtime;
p[k].order=1;
temp_count=1;
while(temp_count
max_priority=0;
for(j=0;j
rrvitetime<=temp_time)&&(!p[j].run_flag))
riority>max_priority){
max_priority=p[j].priority;
k=j;
}
}
p[k].starttime=temp_time;
p[k].finishtime=p[k].starttime+p[k].servietime;