📜  OS SRTF调度算法

📅  最后修改于: 2020-12-14 01:47:17             🧑  作者: Mango

最短剩余时间优先(SRTF)调度算法

该算法是SJF调度的抢先版本。在SRTF中,可以在一定时间后停止该过程的执行。在每个进程到达时,短期调度程序都会在可用进程列表和正在运行的进程中以最小的突发时间来调度进程。

一旦所有进程在就绪队列中可用,就不会进行抢占,并且该算法将作为SJF调度工作。从执行中删除流程并计划下一个流程时,流程的上下文将保存在流程控制块中。下次执行此过程时,将访问该PCB。

在此示例中,有五个作业P1,P2,P3,P4,P5和P6。它们的到达时间和突发时间在下表中给出。

Process ID Arrival Time Burst Time Completion Time Turn Around Time Waiting Time Response Time
1 0 8 20 20 12 0
2 1 4 10 9 5 1
3 2 2 4 2 0 2
4 3 1 5 2 1 4
5 4 3 13 9 6 10
6 5 2 7 2 0 5

平均等待时间= 24/6

甘特图是根据表中给出的到达时间和突发时间准备的。

  • 由于在时间0,唯一可用的进程是CPU突发时间为8的P1。这是列表中唯一可用的进程,因此已对其进行了调度。
  • 下一个进程到达时间单位1。由于我们使用的算法是SRTF,它是抢占式算法,因此当前执行将停止,并且调度程序将检查突发时间最少的进程。到目前为止,就绪队列中有两个可用的进程。到目前为止,OS已经执行了P1一个时间单位; P1的剩余突发时间为7个单位。处理P2的突发时间为4个单位。因此,根据算法在CPU上调度进程P2。
  • 下一个过程P3到达时间单元2。这时,过程P3的执行停止,并搜索剩余突发时间最少的过程。由于过程P3具有2个单位的突发时间,因此它将被赋予优先级。
  • 下一进程P4到达时间单元3。在此到达时,调度程序将停止执行P4,并检查可用进程(P1,P2,P3和P4)中哪个进程的突发时间最少。 P1和P2的剩余突发时间分别为7个单位和3个单位。
  • P3和P4的剩余突发时间各为1个单位。由于两者相等,因此将根据其到达时间进行调度。 P3早于P4到达,因此将再次安排。

  • 下一进程P5在时间单元4到达。直到此时,进程P3已完成其执行,并且不再存在于列表中。调度程序将比较所有可用进程的剩余突发时间。由于过程P4的突发时间是1,这是所有事件中最少的,因此将对其进行调度。
  • 下一过程P6到达时间单元5,直到此时,过程P4已经完成其执行。到目前为止,我们有4个可用过程,分别是P1(7),P2(3),P5(3)和P6(2)。 P6的突发时间是所有中最短的,因此计划了P6。由于现在所有进程都可用,因此算法现在将与SJF相同。 P6将一直执行到完成为止,然后安排剩余时间最少的过程。

一旦所有进程到达,就不会进行抢占,并且该算法将作为SJF工作。