📜  操作系统非抢先优先级调度

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

非抢占式优先级调度

在非抢先优先级调度中,将根据分配给它们的优先级编号来调度进程。一旦安排好流程,它将一直运行到完成为止。通常,优先级数字越低,进程的优先级越高。人们可能会对优先级数字感到困惑,因此在GATE中,明确提到哪个优先级最高,哪个优先级最低。

在示例中,有7个过程P1,P2,P3,P4,P5,P6和P7。表中列出了它们的优先级,到达时间和突发时间。

Process ID Priority Arrival Time Burst Time
1 2 0 3
2 6 2 5
3 3 1 4
4 5 4 2
5 7 6 9
6 4 5 4
7 10 7 10

我们可以根据非抢先优先级调度来准备甘特图。

进程P1到达时间0,突发时间为3个单位,优先级号为2。由于到目前为止还没有其他进程到达,因此OS将立即对其进行调度。

同时执行P1,又有两个过程P2和P3到达。由于P3的优先级为3,因此CPU将执行P3而不是P2。

同时执行P3,所有进程在就绪队列中可用。优先级编号最低的进程将被赋予优先级。由于P6的优先级编号分配为4,因此它将在P3之后执行。

在P6之后,P4在可用进程中的优先级编号最少;它会在整个突发时间内执行。

由于所有作业在就绪队列中均可用,因此所有作业将根据其优先级执行。如果为两个作业分配了相似的优先级编号,则将执行到达时间最少的作业。

从准备的GANTT图表中,我们可以确定每个过程的完成时间。确定周转时间,等待时间和响应时间。

Turn Around Time = Completion Time - Arrival Time 
Waiting Time = Turn Around Time - Burst Time 
Process Id Priority Arrival Time Burst Time Completion Time Turnaround Time Waiting Time Response Time
1 2 0 3 3 3 0 0
2 6 2 5 18 16 11 13
3 3 1 4 7 6 2 3
4 5 4 2 13 9 7 11
5 7 6 9 27 21 12 18
6 4 5 4 11 6 2 7
7 10 7 10 37 30 18 27

平均等待时间=(0 + 11 + 2 + 7 + 12 + 2 + 18)/ 7 = 52/7单位