FCFS调度算法(FCFS,先来先服务,FIst Come Fiest Serve)

FCFS调度算法(FCFS,先来先服务,FIst Come Fiest Serve)

周转时间=作业完成时间-作业提交时间
平均周转时间=各作业周转时间之和 / 作业数
带权周转时间=作业周转时间 / 作业实际运行的时间=(作业完成时间-作业提交时间)/ 作业实际运行的时间

代码

#include<stdio.h>
#include<stdlib.h>
struct Process{
	int at;	//到达时间     需要输入的 
	int rt;  //运行时间 
	int et;//结束时间 
	int ct;//周转时间      结束时间-到达时间 
} p[100];

int main(){
	int num;
	int i,j;
	double totaltime=0.0;	//总周转时间 
	double average=0.0; //平均周转时间 
	printf("请输入作业的个数\n");
	scanf("%d",&num);
	printf("请输入进程的到达时间和运行时间\n"); 
	for(i=0;i<num;i++){
		printf("第%d个作业的到达时间 运行时间\n",i+1); 
		scanf("%d%d",&(p[i].at),&(p[i].rt));
	}
	
	//计算结束时间和周转时间
	for(i=0;i<num;i++){
		//结束时间
		if(i==0)
			p[i].et=p[i].rt+p[i].at;     //结束时间为作业执行完毕的时间,当为第一个作业时,作业的结束时间为进入的时间加上运行的时间 
		else
			p[i].et=p[i-1].et+p[i].rt;     //结束时间为上一作业的结束时间+本作业的运行时间 
		//周转时间
		p[i].ct=p[i].et-p[i].at;
		totaltime+=p[i].ct; 
		printf("第%d作业的到达时间:%d,结束时间:%d,周转时间:%d\n",i+1,p[i].at,p[i].et,p[i].ct); 
	} 
	average=totaltime/num;
	printf("平均周转时间为:%.2f\n",average);
	return 0;
	
} 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值