fcfs,输入进程数量,到达时间,服务时间,用c++计算开始执行时刻,完成时刻,周转时间,带权周转时间
时间: 2024-10-18 13:13:43 浏览: 74
FCFS(First-Come, First-Served,先来先服务)调度算法是一种简单的进程调度策略,它按照进程到达的时间顺序安排它们在CPU上执行。为了用C++计算开始执行时刻、完成时刻、周转时间和带权周转时间,你需要提供每个进程的信息,包括到达时间(Arrival Time)、服务时间(Service Time)。这里是一个简化的示例:
```cpp
#include <iostream>
#include <vector>
struct Process {
int pid; // 进程ID
int arrival_time; // 到达时间
int service_time; // 服务时间
};
int calculateExecuteTime(Process process) {
return process.arrival_time;
}
int calculateCompletionTime(Process process) {
return calculateExecuteTime(process) + process.service_time;
}
void printTimes(Process process) {
int start = calculateExecuteTime(process);
int end = calculateCompletionTime(process);
std::cout << "Process " << process.pid << ": \n";
std::cout << "Start time: " << start << "\n";
std::cout << "Completion time: " << end << "\n";
// 周转时间
int turnaround_time = end - process.arrival_time;
std::cout << "Turnaround time: " << turnaround_time << "\n";
// 带权周转时间(如果给每个进程分配了权重,可以在此处计算)
// 如果没有权重,默认就是简单周转时间
std::cout << "Weighted Turnaround time (assuming no weights): " << turnaround_time << "\n";
}
int main() {
const int num_processes = 3; // 假设有三个进程
std::vector<Process> processes = { ... }; // 填充实际的进程信息
for (const auto& process : processes) {
printTimes(process);
}
return 0;
}
```
在`main`函数中,你需要填充一个包含所有进程信息的`std::vector<Process>`。然后遍历这个向量,对每个进程调用`printTimes`函数。
阅读全文