📜  OS SRTF:IO绑定的进程

📅  最后修改于: 2020-12-14 03:34:34             🧑  作者: Mango

带有进程的SRTF包含CPU和IO时间

到目前为止,我们仅考虑CPU绑定作业。但是,该过程可能需要一些IO操作或一些资源来完成其执行。在本示例中,我们正在考虑IO绑定过程。

在该示例中,有四个作业ID为P1,P2,P3和P4的作业可用。下表列出了它们的到达时间和CPU突发时间。

Process Id Arrival Time (Burst Time, IO Burst Time, Burst Time)
1 0 (3,2,2)
2 0 (1,3,1)
3 3 (3,1,2)
4 6 (5,4,5)

甘特图准备

在时间0,过程P1和P2到达。由于我们使用的算法是SRTF,因此突发时间最短的进程将安排在CPU上。在这种情况下,它是P2。


从时间0到时间1,P2将处于运行状态。

P2还需要一些IO时间才能完成其执行。执行1个单位后,P2将其状态从运行更改为等待。处理器可以自由执行其他作业。由于此时除了P1之外没有其他进程可用,因此将执行P1。

下图说明了时间1的过程和状态。过程P2进入等待状态,此时CPU成为偶像。

从时间1到3,由于P2处于等待状态,并且就绪队列中没有其他进程可用,因此将在此时间段内执行唯一可用的进程P1。


在时间3,进程P3以5个单元的总CPU突发时间到达。由于P1的剩余突发时间短于P3,因此CPU将继续执行。

因此,P1从时间3到时间4将保持在运行状态。


由于P1是IO绑定的过程。在时间单位4,它将从运行状态更改为等待状态。处理器可以自由执行其他作业。由于P2在4时刻也已可用,因为它已完成IO操作,现在又需要1个单位的CPU突发时间。 P3也可用,并且需要5个单位的CPU总突发时间。

将执行可用进程中剩余CPU突发时间最少的进程。在我们的情况下,这种过程是P2,需要1个单位的突发时间,因此将给CPU。


在时间5,P2完成。 P1仍处于等待状态。此时,唯一可用的进程是P3,因此将分配给CPU。

从时间5到时间6,P3将处于运行状态;同时,P1仍处于等待状态。



在时间6,过程P4到达就绪队列。 P1还完成了IO,可用于执行。 P3尚未完成,仍需要另外2个单位的CPU突发时间。

从时间6到时间8,进程P3的扩孔CPU突发时间在可用进程中最少,因此将为P3提供CPU。


P3需要一些IO操作才能完成其执行。在时间8,P3将其状态从运行更改为等待。 CPU可以自由执行其他进程。可以使用过程P4和P1,其中将执行剩余突发时间最少的过程。

从时间8到时间9,将执行过程P1。


在时间9,过程P3的IO已完成,它现在将与就绪的P4一起在就绪状态下可用。为了完成其执行,还需要另外2个单位的突发时间。此时,P1处于运行状态,而没有任何过程处于等待状态。


从时间9到10,由于进程P1的剩余CPU突发时间少于就绪队列中可用的进程P4和P3,因此它将被执行。


在时间10,P1的执行完成,现在CPU变成了偶像。在就绪进程中,CPU突发时间较短的进程将使CPU运转。

从时间10到12,由于进程P3的剩余CPU突发时间是两个可用进程之间的时间,因此它将执行到完成为止。它需要2个单位的CPU突发时间,因为没有其他进程会到达就绪状态,因此不会进行抢占,并且将执行直到完成。


在时间12,由于在就绪状态下只有一个进程P4可用,因此进程P3将完成,因此P4将被分配给CPU。

P4在IO之前需要5个单位的CPU突发时间,因此它将执行到时间17(5个单位),然后将其状态从运行更改为等待。

在时间17,过程P4将其状态从运行改变为等待。由于这是系统中唯一的进程,因此CPU将保持偶像状态,直到P4再次可用为止。


在时间21,P4将通过IO操作完成,并在就绪状态下可用。

从时间21开始,将调度过程P4。由于没有其他进程处于就绪队列中,因此处理器别无选择。它将执行到完成。

最终甘特图:

Process Id Arrival Time Total CPU Burst Time Completion Time Turn Around Time Waiting Time
1 0 5 10 10 5
2 0 2 5 5 3
3 3 5 12 9 4
4 6 10 26 20 10

平均等待时间=(5 + 3 + 4 + 10)/ 4 = 22/4单位