用C++语言实现先来先服务算法
时间: 2023-06-02 09:01:56 浏览: 51
下面是使用C语言实现先来先服务算法的示例代码:
```c
#include <stdio.h>
struct Process {
int id; // 进程ID
int arrivalTime; // 到达时间
int burstTime; // 执行时间
int completionTime; // 完成时间
int turnaroundTime; // 周转时间
int waitingTime; // 等待时间
};
void FCFS(struct Process processes[], int n) {
int currentTime = 0;
for (int i = 0; i < n; i++) {
if (currentTime < processes[i].arrivalTime) {
currentTime = processes[i].arrivalTime;
}
processes[i].completionTime = currentTime + processes[i].burstTime;
processes[i].turnaroundTime = processes[i].completionTime - processes[i].arrivalTime;
processes[i].waitingTime = processes[i].turnaroundTime - processes[i].burstTime;
currentTime = processes[i].completionTime;
}
}
void printTable(struct Process processes[], int n) {
printf("Process\tArrival Time\tBurst Time\tCompletion Time\tTurnaround Time\tWaiting Time\n");
for (int i = 0; i < n; i++) {
printf("%d\t\t%d\t\t%d\t\t%d\t\t%d\t\t\t%d\n",
processes[i].id, processes[i].arrivalTime, processes[i].burstTime,
processes[i].completionTime, processes[i].turnaroundTime, processes[i].waitingTime);
}
}
int main() {
struct Process processes[] = {
{1, 0, 10, 0, 0, 0},
{2, 3, 5, 0, 0, 0},
{3, 5, 8, 0, 0, 0},
{4, 7, 3, 0, 0, 0},
{5, 10, 2, 0, 0, 0}
};
int n = sizeof(processes) / sizeof(processes[0]);
FCFS(processes, n);
printTable(processes, n);
return 0;
}
```
输出结果:
```
Process Arrival Time Burst Time Completion Time Turnaround Time Waiting Time
1 0 10 10 10 0
2 3 5 15 12 7
3 5 8 23 18 10
4 7 3 26 19 16
5 10 2 28 18 16
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)