用c语言实现进程调度的先来先服务算法
时间: 2023-12-19 10:32:19 浏览: 48
以下是用C语言实现进程调度的先来先服务(FCFS)算法的示例代码:
```c
#include <stdio.h>
struct Process {
int pid; // 进程ID
int arrivalTime; // 到达时间
int burstTime; // 执行时间
};
void fcfsScheduling(struct Process processes[], int n) {
int waitingTime = 0;
int turnaroundTime = 0;
printf("进程ID\t到达时间\t执行时间\t等待时间\t周转时间\n");
for (int i = 0; i < n; i++) {
if (i > 0) {
waitingTime += processes[i - 1].burstTime;
}
turnaroundTime = waitingTime + processes[i].burstTime;
printf("%d\t%d\t\t%d\t\t%d\t\t%d\n", processes[i].pid, processes[i].arrivalTime, processes[i].burstTime, waitingTime, turnaroundTime);
}
float averageWaitingTime = (float)waitingTime / n;
float averageTurnaroundTime = (float)turnaroundTime / n;
printf("\n平均等待时间: %.2f\n", averageWaitingTime);
printf("平均周转时间: %.2f\n", averageTurnaroundTime);
}
int main() {
// 创建进程数组
struct Process processes[] = {
{1, 0, 6},
{2, 2, 4},
{3, 4, 8},
{4, 6, 3}
};
int n = sizeof(processes) / sizeof(processes[0]);
fcfsScheduling(processes, n);
return 0;
}
```