scheduler - 最短剩余时间优先 (SRTF) 如何运作?

标签 scheduler scheduling

如果一个作业正在处理中,那么它完成之前的时间不是最短吗?因为当它被抢占时,它最终会成为就绪运行队列的头部?

那么,这只是一个重复循环,直到作业完成,并产生开销吗?

较长的流程不会被忽略吗(就像 SJF 一样)?

谢谢

最佳答案

不,正在处理的作业不一定具有最短的剩余时间。 SRTF 检查就绪队列中是否有一个进程需要较少的突发时间来完成抢占。假设您有 p1、p2 和 p3。 p1 总突发数为 15,在时间 0 到达;p2 总突发数为 10,在时间 3 到达;p3 总突发数为 1,在时间 4 到达。

使用 SRTF 的执行将是:

p1 -> from 0 to 3, remaining burst -> p1 = 12

在 3 处,到达 p2,p2 突发 < p1 剩余突发,因此 p2 获得 cpu

p2 -> from 3 to 4, remaining burst -> p1=12,p2 = 9 

4 到达 p3,p3 突发 < p2 剩余突发 < p1 剩余突发,因此 p3 获得 cpu

p3-> from 4 to 5, remaining burst -> p2=9,p1=12
p2-> from 5 to 14, remaining burst -> p1=12
p1-> from 14 to 26, end

关于scheduler - 最短剩余时间优先 (SRTF) 如何运作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63428403/

相关文章:

java - 如何在 Tomcat 中安排任务

Linux调度程序修改

linux - 中断处理程序和进程调度程序

Java - .csv 文件作为输入

database - 如何有效地存储计划日期?

c# - 为我的Observable扩展方法选择“默认”调度程序

c - 比赛排类表C算法

python - 对于 'Run whether user is logged on or not' 选项,计划任务不会在 Windows 10 中运行 .py 文件

java - 如何在Spring Boot中实现单线程调度器?

Windows 任务调度程序可在几秒钟内执行任务