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