【调度算法|FCFS算法以及FJF算法实现】对于作业调度有很多种调度算法,今天就来实现一下两个各个调度算法里面最简单的两个调度算法.先来先服务和短作业优先算法.
本人C语言程序的代码量不是很多,毕竟入门就学的java所以有不完善的地方还请多指教咯.
文本末尾是两个示范输入数据
#include
#include
#define SIZE 5
voidfcfsSort();
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){
structJob_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){
structJob_type temp = job[i];
job[i] = job [j];
job[j] = temp;
}
}
}
//如果作业伟全部执行完则递归进行程序
if(t
推荐阅读
- 操作系统|[译]从内部了解现代浏览器(1)
- 网络|网络编程释疑(TCP连接拔掉网线后会发生什么)
- c/c++|有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代...