非抢占式优先调度

在非抢先优先调度中, 将根据分配给它们的优先级编号来调度进程。一旦安排了线程, 它将一直运行到完成。通常, 优先级数字越低, 进程的优先级越高。人们可能会对优先级数字感到困惑, 因此在GATE中, 明确提到哪一个是最高优先级, 哪个是最低优先级。
例子
在示例中, 有7个线程P1, P2, P3, P4, P5, P6和P7。表中列出了它们的优先级, 到达时间和突发时间。

进程ID Priority 到达时间 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

线程编号 Priority 到达时间 Burst Time Completion Time Turnaround 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单位

    推荐阅读