我正在查看该网站上找到的示例:
http://www.tutorialspoint.com/operating_system/os_process_scheduling_algorithms.htm
这些例子有些没有意义。以最短工作优先为例。前提是您选择执行时间最少的进程并首先运行它。
该示例首先运行 p1,然后运行 p0。但为什么?在 t = 0 时,队列中存在的唯一进程是 p0。那不是从 t = 0 开始运行,然后 p1 会从 t = 6 开始运行吗?
我在基于优先级的调度方面也遇到了同样的问题。
你是对的,由于进程 P0 在 0 秒且在 P1 之前到达队列,因此它将在 P1 之前开始执行。
如果相应的进程没有到达时间,他们的答案就是正确的,在这种情况下,认为所有进程都同时到达队列。因此,执行时间最短的进程将被执行CPU优先。
我有这个实现名称 ALeXSim-USAS,您可以使用它来分析不同算法的不同场景。但仅用于验证手动计算的结果/答案,即学习调度算法。我并不是说这个工具是最好的,但足以实现这个目的。
https://alexsim-system.blogspot.com/
例如场景上SJF的问题可以通过以下结果进行验证