FCFS算法以及FJF算法实现

对于作业调度有很多种调度算法,今天就来实现一下两个各个调度算法里面最简单的两个调度算法.先来先服务和短作业优先算法.

本人C语言程序的代码量不是很多,毕竟入门就学的java所以有不完善的地方还请多指教咯.

文本末尾是两个示范输入数据

#include 
#include 
#define SIZE 5
void  fcfsSort();
void myFun(int i);
struct Job_type
{ 
  char num;  //作业号
  int arrival_time;  //到达时间
  int runtime;  //服务时间
  int timeStart; //执行时间
  int timeFinished; //结束时间
  int timeServe; //周转时间
} x,job[SIZE];

/*
*load()
*加载函数:输入各个作业的作业号,到达时间,运行时间
*
*/
void load()
{
	int i;
    printf("\nEnter the Jobs' datas:\n");
    for(i=0;ijob[j].arrival_time){
                  struct  Job_type temp = job[i];
                     job[i] = job [j];
                     job[j] = temp;
                
                 }
         }
   }
}

/*
*shf(int n,int tc)
*短作业优先算法
*
*
*/

void sjf(int n,int tc)    //短作业调度函数
{ 
	int i,j,k=n,t=n;
	if(k==0){
	job[0].timeStart = job[0].arrival_time;
	job[0].timeFinished = job[0].arrival_time + job[0].runtime;
	job[0].timeServe = job[0].timeFinished - job[0].timeStart;
}else{
		myFun(tc);
}
k++;   

//判断上一个作业结束后在集合里面按时间到达的作业个数
for(i=k;ijob[j].runtime){
                  struct  Job_type temp = job[i];
                     job[i] = job [j];
                     job[j] = temp;
                 }
         }
  }
  //如果作业伟全部执行完则递归进行程序
  if(t

你可能感兴趣的:(调度算法,操作系统,C)