操作系统 非抢先优先级调度
在非抢先优先级调度中,进程根据其分配的优先级号进行调度。一旦进程得到调度,它会一直运行直到完成。通常,优先级号越低,进程的优先级越高。人们可能会对优先级号感到困惑,因此在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。由于此时没有其他进程到达,因此操作系统将立即调度它。
与此同时,P1的执行过程中,另外两个进程P2和P3到达。由于P3的优先级为3,因此CPU将优先执行P3而不是P2。
与此同时,P3的执行过程中,所有进程都可用于就绪队列。具有最低优先级编号的进程将获得优先级。由于P6的优先级编号为4,因此它将在P3之后立即执行。
在P6之后,P4是可用进程中优先级编号最低的进程;它将完整地执行。
由于所有作业都可用于就绪队列,因此所有作业将根据其优先级执行。如果两个作业具有相同的优先级编号,则将执行具有最早到达时间的那个作业。
从准备的甘特图中,我们可以确定每个进程的完成时间。 这将确定周转时间、等待时间和响应时间。
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单位