用C语言编写“最短作业优先(SJF)” 调度算法,编写以 下函数,计算平均带权周转时间并返回。 注意: 1)不要修改函数名、函数返回类型、参数个数、参数名和参数类型。 2)函数输入参数说明: arrival_time:作业达到时间数组 run_time: 作业运行时间数组 num:作业数 3)函数返回值:作业平均带权周转时间
时间: 2024-02-23 09:02:12 浏览: 57
C++实现CPU调度算法先来先服务(FCFS),非抢占最短作业优先调度(SJF),优先级调度,时间片轮转调度(RR)并输出相应的平均等待时间和平均周转时间。
5星 · 资源好评率100%
以下是用 C 语言编写的计算 SJF 调度算法平均带权周转时间的函数:
```c
float sjf(float arrival_time[], float run_time[], int num) {
float wait_time[num]; // 等待时间数组
float tat[num]; // 周转时间数组
float total_wt = 0, total_tat = 0; // 总等待时间和总周转时间
int i, j;
// 计算等待时间和周转时间
for (i = 0; i < num; i++) {
wait_time[i] = 0;
tat[i] = 0;
for (j = 0; j < i; j++) {
wait_time[i] += run_time[j];
}
tat[i] = wait_time[i] + run_time[i];
total_wt += wait_time[i];
total_tat += tat[i];
}
// 计算平均带权周转时间并返回
return total_tat / total_wt;
}
```
此函数实现了 SJF 调度算法,并计算了平均带权周转时间,输入参数为作业达到时间数组、作业运行时间数组和作业数,返回值为作业平均带权周转时间。
阅读全文