SJF和SRJF CPU调度算法的区别

SJF和SRJF CPU调度算法的区别

1. 最短作业优先(SJF):

最短作业优先(SJF)是一种调度策略,它选择执行时间最短的等待进程接下来执行。它也称为最短作业下一个 (SJN) 或最短流程下一个 (SPN)。它是一种非抢占式调度算法。

2. 最短剩余工作优先(SRTF):

最短剩余作业优先 (SRJF) 是 SJF 调度的抢占式版本。在这种调度算法中,选择执行剩余时间最少的进程。具有相同到达时间的进程会将 SRTF 转换为 SJF。

SJF和SRJF CPU调度算法相似之处:

  • SJF 和 SRJF 实际上都不可行,因为无法预测过程的突发时间。
  • SJF 和 SRJF 都可能导致进程饥饿,因为如果连续添加短进程,长进程可能会无限期推迟。
  • 一旦就绪队列中的所有进程都可用,SJF 和 SRJF 都被认为是相同的。这是因为进程加入就绪队列后,并没有进行抢占。

SJF和SRJF CPU调度算法的区别:

最短工作优先 最短剩余工作优先
最短工作优先是一种非抢占式算法。 最短剩余工作优先是一种抢占式算法。
最短工作优先涉及的开销比 SRJF 少。 最短剩余工作优先比 SJF 涉及更多的间接费用。
最短工作优先的执行速度比 SRJF 慢。 最短剩余工作优先的执行速度比 SJF 快。
最短工作优先导致相对较低的吞吐量。 随着执行时间的减少,最短剩余工作优先会导致吞吐量增加。
最短工作优先最大限度地减少了每个进程的平均等待时间。 最短剩余工作优先可能会也可能不会最小化每个进程的平均等待时间。
最短工作优先可能会受到优先级反转的影响。 最短剩余工作优先可能会受到护航效应的影响。
最短工作优先涉及较少数量的上下文切换。 最短剩余工作优先涉及更多数量的上下文切换。
首先执行短流程,然后执行较长的流程。 较短的进程运行得很快,而较长的进程则显示出较差的响应时间。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程