使用c++写一个进程调度算法先来先服务
时间: 2024-05-11 20:16:35 浏览: 100
好的,以下是使用 C 写一个先来先服务进程调度算法的示例代码:
```c
#include <stdio.h>
#define MAX 10 // 最大进程数
int main() {
int bt[MAX], wt[MAX], tat[MAX], avwt = 0, avtat = 0, i, j, n;
printf("请输入进程数:");
scanf("%d", &n);
printf("请输入每个进程的执行时间:\n");
for (i = 0; i < n; i++) {
printf("进程 %d:", i + 1);
scanf("%d", &bt[i]);
}
wt[0] = 0; // 第一个进程的等待时间为 0
for (i = 1; i < n; i++) {
wt[i] = 0;
for (j = 0; j < i; j++) {
wt[i] += bt[j];
}
}
printf("\n进程\t执行时间\t等待时间\t周转时间\n");
for (i = 0; i < n; i++) {
tat[i] = bt[i] + wt[i];
avwt += wt[i];
avtat += tat[i];
printf("%d\t%d\t\t%d\t\t%d\n", i + 1, bt[i], wt[i], tat[i]);
}
avwt /= n;
avtat /= n;
printf("\n平均等待时间 = %d", avwt);
printf("\n平均周转时间 = %d", avtat);
return 0;
}
```
该算法的主要思路是,按照进程到达的顺序依次执行进程,并在每个进程执行完之后,按照到达时间先后的顺序选择下一个进程继续执行。在上述代码中,我们用 bt 数组存储每个进程的执行时间,wt 数组存储每个进程的等待时间,tat 数组存储每个进程的周转时间(执行时间 + 等待时间)。再根据这些数据计算平均等待时间和平均周转时间。
阅读全文