非抢占优先权调度

17 Mar 2025 | 阅读 2 分钟

在非抢占优先权调度中,进程根据分配给它们的优先权编号进行调度。一旦进程被调度,它将一直运行直到完成。通常,优先权编号越小,进程的优先权越高。人们可能会对优先权编号感到困惑,因此在 GATE 考试中,会清楚地说明哪个是最高优先权,哪个是最低优先权。

示例

在本例中,有 7 个进程 P1、P2、P3、P4、P5、P6 和 P7。它们的优先权、到达时间和突发时间在表中给出。

进程 ID优先权到达时间执行时间
1203
2625
3314
4542
5769
6454
710710

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

进程 P1 在时间 0 到达,突发时间为 3 个单位,优先权编号为 2。由于此时没有其他进程到达,因此操作系统将立即调度它。

在 P1 执行期间,另外两个进程 P2 和 P3 到达。由于 P3 的优先权是 3,CPU 将比 P2 执行 P3。

在 P3 执行期间,所有进程都已进入就绪队列。具有最低优先权编号的进程将获得优先权。由于 P6 的优先权编号指定为 4,它将在 P3 之后立即执行。

在 P6 之后,P4 是可用进程中优先权编号最低的;它将执行整个突发时间。

由于所有作业都在就绪队列中可用,因此所有作业将根据其优先权执行。如果两个作业具有相同的优先权编号,则具有最小到达时间的作业将执行。

os Non Preemptive Priority Scheduling

从准备好的甘特图中,我们可以确定每个进程的完成时间。然后确定周转时间、等待时间和响应时间。

进程 ID优先权到达时间执行时间完成时间周转时间等待时间响应时间
12033300
262518161113
33147623
4542139711
576927211218
645411627
71071037301827

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