另一位用户在最短作业优先(SJF)上发布了this个问题。以下是示例:
如何在最短的剩余时间下解决这个问题? Shortest Job First的抢先版本。
我知道选择执行剩余时间最短的过程直到完成。但是,如果新进程到达的突发时间与当前正在执行的进程的剩余完成时间完全相同,会发生什么?
在新进程到达的情况下,其突发时间与当前执行进程相同(如本示例所示),那么当前正在执行的进程是否继续?
我的理解是否正确?提前谢谢。
答案 0 :(得分:1)
引自Wikipedia's Shortest remaining time:
在这种调度算法中,具有最小量的过程 选择执行完成前剩余的时间。自从 目前正在执行的流程是最短的流程 按定义剩余的时间,从那时起应该只减少 随着执行的进行,进程将一直运行直到执行 完成或添加需要较少量的新流程 时间强>
最短的剩余时间是有利的,因为短的过程是 处理得很快。该系统还需要很少的开销 因为它只在流程完成或新流程时做出决定 添加进程,仅在添加算法时添加新进程 需要将当前正在执行的进程与新进程进行比较 进程,忽略当前等待执行的所有其他进程。 //强调我的。
如果到达的新进程的突发时间与当前正在执行的进程的剩余完成时间完全相同,则CPU将继续执行当前进程。这个决定是因为process context switch is heavier,因此在剩余相等的突发时间的情况下,当前正在执行的进程将继续执行直到完成,或者新的短进程到达。
并且,是的,您的甘特图正确绘制。
但是,请从维基百科上了解这些限制:
像下一个调度的最短作业,最短的剩余时间调度 很少在专业环境之外使用,因为它需要 准确估计每个过程的运行时间。