用c语言实现先来先服务调度算法
时间: 2023-10-24 19:08:01 浏览: 96
Okay,我知道你想让我用C语言实现先来先服务调度算法。我会尽力回答你的问题。
先来先服务调度算法,也称为FCFS(FIFO)算法,是一种最简单的调度方式。它的执行方案是,系统按照任务的到达时间依次执行。
以下是C语言的代码实现:
```c
#include<stdio.h>
int main()
{
int at[20],bt[20],tat[20],wt[20];
float avgtat=0.0,avgwt=0.0;
int n,i;
printf("Enter the number of processes: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Enter the arrival time and burst time of process %d: ",i+1);
scanf("%d%d",&at[i],&bt[i]);
}
tat[0]=bt[0];
avgtat=(float)tat[0]/n;
wt[0]=0;
avgwt=(float)wt[0]/n;
for(i=1;i<n;i++)
{
tat[i]=tat[i-1]+bt[i];
avgtat+=tat[i]/n;
wt[i]=tat[i-1];
avgwt+=wt[i]/n;
}
printf("Process\tAT\tBT\tTAT\tWT");
for(i=0;i<n;i++)
printf("\nP[%d]\t%d\t%d\t%d\t%d",i+1,at[i],bt[i],tat[i],wt[i]);
printf("\nAverage turnaround time is: %.2f",avgtat);
printf("\nAverage waiting time is: %.2f\n",avgwt);
return 0;
}
```
实现的过程中,我们需要输入进程的到达时间和执行时间,然后按照先来先服务算法进行调度,最后输出每个进程的到达时间、执行时间、周转时间和等待时间。代码中,我们用了tat变量表示周转时间,wt变量表示等待时间,avgtat表示平均周转时间,avgwt表示平均等待时间。
阅读全文