二、实验项目内容(实验题目)
1、创建三个模拟作业(进程),按照SJF算法模拟其调度过程。
名称 到达时间 服务时间 开始时间 结束时间 周转时间 带权周转时间
a 0 3
b 1 2
c 2 1
任务一:认真阅读程序,将程序执行的流程描述出来。
任务二:在适当的位置补充带权周转时间的计算公式,并输出。
三、源程序(实验步骤/实验过程/算法)
任务一:
#include
#include
#include
typedef struct ssjjff
{
char name[10];
double arriveTime; //到达时间
double serveTime; //服务时间
double startTime; //开始时间
double endTime; //完成时间
double zhouzhuan; //周转时间
} sjf;
sjf s[101];
void input(sjf *p,int N);
void Sort(sjf *p,int N);
void output(sjf *p,double arriveTime,double serveTime,double startTime,double endTime,double zhouzhuan,int N);
void deal(sjf *p,double arriveTime,double serveTime,double startTime,double endTime,double zhouzhuan,int N);
void SJF(sjf *p,int N);
int main()
{
int N;
printf(" 短作业优先调度算法 \n");
printf("请输入进程数:");
scanf("%d",&N);
input(s,N);
sjf *p = s;
SJF(p,N);
return 0;
}
void input(sjf *p,int N) // 输入数据
{
int i;
for (i=0; i%s",p[j].name);
}
printf("\n");
printf("\n进程名 到达时间 服务时间 开始时间 结束时间 周转时间\n");
for(j=0; j
任务二:
#include
#include
#include
typedef struct ssjjff
{
char name[10];
double arriveTime; //到达时间
double serveTime; //服务时间
double startTime; //开始时间
double endTime; //完成时间
double zhouzhuan; //周转时间
double weightedturnaroundtime; //进程带权周转时间
} sjf;
sjf s[101];
void input(sjf *p,int N);
void Sort(sjf *p,int N);
void output(sjf *p,double arriveTime,double serveTime,double startTime,double endTime,double zhouzhuan,double weightedturnaroundtime,int N);
void deal(sjf *p,double arriveTime,double serveTime,double startTime,double endTime,double zhouzhuan,double weightedturnaroundtime,int N);
void SJF(sjf *p,int N);
int main()
{
int N;
printf(" 短作业优先调度算法 \n");
printf("请输入进程数:");
scanf("%d",&N);
input(s,N);
sjf *p = s;
SJF(p,N);
return 0;
}
void input(sjf *p,int N) // 输入数据
{
int i;
for (i=0; i%s",p[j].name);
}
printf("\n");
printf("\n进程名 到达时间 服务时间 开始时间 结束时间 周转时间 带权周转时间\n");
for(j=0; j