非抢占式优先级调度
精华
小牛编辑
116浏览
2023-03-14
在非先占优先级调度中,进程根据分配给它们的优先级编号进行调度。 一旦进程被安排好了,它就会运行直到完成。 通常,优先级数越低,进程的优先级越高。 人们可能会对优先级数字感到困惑,因此在GATE中,明确提到哪一个是最高优先级,哪一个是最低优先级。
示例
在例子中,有7个进程:P1
,P2
,P3
,P4
,P5
,P6
和P7
。 它们的优先级,到达时间和爆发时间在表中给出。
进程ID | 优先级 | 到达时间 | 爆发时间 |
---|---|---|---|
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将通过P2执行P3。
同时执行P3,所有进程都可以在就绪队列中使用。 优先级最低的进程将被优先考虑。 由于P6将优先级编号分配为4,因此它将在P3之后执行。
在P6之后,P4在可用进程中具有最小优先级编号; 它会在整个爆发时间执行。
由于所有作业都在就绪队列中可用,因此所有作业都将根据其优先级执行。 如果两个作业的优先级编号相似,则会执行最短到达时间的编号。
从GANTT图表中,可以确定每个进程的完成时间。 周转时间,等待时间和响应时间将被确定。
周转时间 = 完成时间 - 到达时间
等待时间 = 周转时间 - 爆发时间
进程Id | 优先级 | 到达时间 | 爆发时间 | 完成时间 | 周转时间 | 等待时间 | 响应时间 |
---|---|---|---|---|---|---|---|
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单位