系统进程调度先进先服务代码csdn
时间: 2023-11-08 15:02:39 浏览: 41
系统进程调度的先进先服务(First-Come-First-Serve,简称FCFS)算法是一种简单的调度算法,即按照进程到达系统的先后顺序为它们分配CPU时间。以下是一个使用FCFS算法的代码示例:
```c++
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
// 进程结构体
struct Process {
int id; // 进程ID
int arrivalTime; // 到达时间
int burstTime; // 执行时间
};
// 按照到达时间对进程进行排序的比较函数
bool compareByArrivalTime(const Process& p1, const Process& p2) {
return p1.arrivalTime < p2.arrivalTime;
}
// 执行FCFS调度算法
void executeFCFS(vector<Process>& processes) {
sort(processes.begin(), processes.end(), compareByArrivalTime); // 按照到达时间排序
int currentTime = 0; // 当前时间
for (int i = 0; i < processes.size(); i++) {
if (currentTime < processes[i].arrivalTime) {
currentTime = processes[i].arrivalTime; // 处理等待时间
}
cout << "进程 " << processes[i].id << " 在时间 " << currentTime << " 开始执行" << endl;
currentTime += processes[i].burstTime; // 更新当前时间
cout << "进程 " << processes[i].id << " 在时间 " << currentTime << " 执行完成" << endl;
}
}
int main() {
// 创建进程队列
vector<Process> processes;
processes.push_back({1, 0, 5}); // 进程1,到达时间0,执行时间5
processes.push_back({2, 2, 3}); // 进程2,到达时间2,执行时间3
processes.push_back({3, 4, 2}); // 进程3,到达时间4,执行时间2
// 执行FCFS调度算法
executeFCFS(processes);
return 0;
}
```
以上代码演示了一个简单的使用FCFS算法进行进程调度的示例。进程被按照到达时间排序后,依次执行,并输出每个进程的开始执行时间和执行完成时间。