剩余下一个最短剩余时间(STRN)调度

问题描述 投票:0回答:1

另一位用户在最短作业优先(SJF)上发布了this问题。这是一个例子:enter image description here

如何在最短的剩余时间下解决这个问题? Shortest Job First的抢先版本。

我知道选择执行剩余时间最短的过程直到完成。但是,如果新进程到达的突发时间与当前正在执行的进程的剩余完成时间完全相同,会发生什么?

在新进程到达的情况下,其突发时间与当前执行进程相同(如本示例所示),那么当前正在执行的进程是否继续?

甘特图显示我将如何理解这些过程:enter image description here

我的理解是正确的吗?先感谢您。

operating-system scheduling job-scheduling
1个回答
1
投票

引自Wikipedia's Shortest remaining time

在该调度算法中,选择执行具有最小剩余时间直到完成的过程。由于当前正在执行的进程是按定义剩余最短时间的进程,并且由于该时间应该仅在执行进行时减少,因此进程将一直运行直到它们完成或添加需要较少时间的新进程。

最短的剩余时间是有利的,因为非常快速地处理短过程。系统还需要很少的开销,因为它只在进程完成或添加新进程时做出决定,并且当添加新进程时,算法只需要将当前正在执行的进程与新进程进行比较,忽略所有其他进程目前正在等待执行。 //强调我的

如果到达的新进程的突发时间与当前正在执行的进程的剩余完成时间完全相同,则CPU将继续执行当前进程。这个决定是因为process context switch is heavier,因此在剩余相等的突发时间的情况下,当前正在执行的进程将继续执行直到完成,或者新的短进程到来。

并且,是的,您的甘特图正确绘制。

但是,请从维基百科中了解这些限制:

与最短作业下一次调度一样,最短剩余时间调度很少在专用环境之外使用,因为它需要准确估计每个进程的运行时间。

© www.soinside.com 2019 - 2024. All rights reserved.