酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

Python 实现 SJF 调度算法:输入 4 进程信息算周转时间

以下是使用 Python 实现短作业优先(SJF)调度算法来计算进程周转时间的示例代码: ```python class Process: def __init__(self, name, arrival_time, running_time): self.name = name self.arrival_time = arrival_time self.running_time = running_time def sjf_scheduling(processes): current_time = 0 completed_processes = [] while processes: # 找到到达时间小于等于当前时间且运行时间最短的进程 shortest_process = min(processes, key=lambda p: (p.running_time if p.arrival_time <= current_time else float('inf'))) processes.remove(shortest_process) start_time = max(current_time, shortest_process.arrival_time) end_time = start_time + shortest_process.running_time current_time = end_time shortest_process.turnaround_time = end_time - shortest_process.arrival_time completed_processes.append(shortest_process) return completed_processes def main(): processes = [] for _ in range(4): name = input("请输入进程名(长度小于等于 10): ") arrival_time = int(input("请输入进程到达时刻: ")) running_time = int(input("请输入进程所需运行时间: ")) processes.append(Process(name, arrival_time, running_time)) completed_processes = sjf_scheduling(processes) for process in completed_processes: print(f"进程 {process.name} 的周转时间为: {process.turnaround_time}") if __name__ == "__main__": main() ``` 运行上述代码后,您将依次输入 4 个进程的信息,程序会输出每个进程的周转时间。 ######[AI写代码神器 | 400点数解答 | 2024-11-07 16:56:44]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]