先来先服务调度算法C++代码
时间: 2023-11-06 11:08:37 浏览: 38
以下是一个简单的先来先服务调度算法的C++代码示例:
```cpp
#include <iostream>
#include <vector>
using namespace std;
struct Process {
int pid; //进程ID
int burst_time; //进程执行时间
int arrival_time; //进程到达时间
};
void FCFS(vector<Process> processes) {
int n = processes.size();
int total_time = 0;
float avg_wait_time = 0;
//计算每个进程的等待时间和结束时间
for (int i = 0; i < n; i++) {
if (total_time < processes[i].arrival_time) {
total_time = processes[i].arrival_time;
}
total_time += processes[i].burst_time;
avg_wait_time += (total_time - processes[i].arrival_time - processes[i].burst_time);
}
//计算平均等待时间
avg_wait_time /= n;
//输出结果
cout << "FCFS Scheduling Algorithm" << endl;
cout << "Average Waiting Time: " << avg_wait_time << endl;
}
int main() {
//定义进程列表
vector<Process> processes = {
{1, 10, 0},
{2, 5, 4},
{3, 8, 1},
{4, 7, 3}
};
//使用FCFS算法调度进程
FCFS(processes);
return 0;
}
```
这个代码示例演示了如何使用先来先服务调度算法来调度进程,计算平均等待时间,并输出结果。在这个例子中,有4个进程,每个进程有一个进程ID、一个执行时间和一个到达时间。在调度过程中,我们按照进程到达时间的先后顺序对进程进行调度。在计算平均等待时间时,我们为每个进程计算了等待时间,并将它们相加,然后除以进程的数量,得到平均等待时间。