如果一个作业正在处理中,那么它在完成之前的时间不是最小的吗?因为当它被抢占时,它最终会成为准备运行队列的头?
那么,这只是一个重复的周期,直到一项工作完成,还有管理费用吗?
难道更长的过程不会被忽视吗(就像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