进程调度算法模拟实验--SJF

二、实验项目内容(实验题目)

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

你可能感兴趣的:(计算机操作系统,操作系统)