FCFS调度算法代码实现
时间: 2023-06-03 21:02:00 浏览: 83
好的,FCFS调度算法是先来先服务调度算法,其实现代码如下:
```c++
#include <iostream>
using namespace std;
struct Process {
int pid; // 进程号
int burst; // 执行时间
int arrival; // 到达时间
};
void FCFS(Process processes[], int n) {
int waitingTime[n], turnAroundTime[n], totalWaitingTime = 0, totalTurnAroundTime = 0;
waitingTime[0] = 0;
turnAroundTime[0] = processes[0].burst;
for (int i = 1; i < n; i++) {
waitingTime[i] = turnAroundTime[i - 1];
turnAroundTime[i] = waitingTime[i] + processes[i].burst;
}
for (int i = 0; i < n; i++) {
totalWaitingTime += waitingTime[i];
totalTurnAroundTime += turnAroundTime[i];
}
double avgWaitingTime = (double)totalWaitingTime / n;
double avgTurnAroundTime = (double)totalTurnAroundTime / n;
cout << "FCFS Scheduling Algorithm\n";
cout << "Process\tBurst Time\tArrival Time\tWaiting Time\tTurn-Around Time\n";
for (int i = 0; i < n; i++) {
cout << "P" << processes[i].pid << "\t ";
cout << processes[i].burst << "\t\t ";
cout << processes[i].arrival << "\t\t ";
cout << waitingTime[i] << "\t\t ";
cout << turnAroundTime[i] << endl;
}
cout << "Average Waiting Time: " << avgWaitingTime << endl;
cout << "Average Turn-Around Time: " << avgTurnAroundTime << endl;
}
int main() {
Process processes[] = {{1, 10, 0}, {2, 5, 0}, {3, 8, 0}};
int n = sizeof(processes) / sizeof(Process);
FCFS(processes, n);
return 0;
}
```
以上是FCFS调度算法的实现代码,可以计算出每个进程的等待时间和周转时间,最后输出平均等待时间和平均周转时间。