假定在单CPU条件下有下列要执行的作业:作业到来的时间是按作业编号顺序进行的(即后面作业依次比前一个作业迟到一个时间单位)。(1)用一个执行时间图描述在采用非抢占式优先级算法时执行这些作业的情况。(2)对于上述算法,各个作业的周转时间是多少?平均周转时间是多少?(3)对于上述算法,各个作业的带权周转时间是多少?平均带权周转时间是多少?
假定在单CPU条件下有下列要执行的作业:
作业到来的时间是按作业编号顺序进行的(即后面作业依次比前一个作业迟到一个时间单位)。
(1)用一个执行时间图描述在采用非抢占式优先级算法时执行这些作业的情况。
(2)对于上述算法,各个作业的周转时间是多少?平均周转时间是多少?
(3)对于上述算法,各个作业的带权周转时间是多少?平均带权周转时间是多少?
题目解答
答案
解:
(2) 和(3) 
解析
本题主要考察非抢占式优先级调度算法的执行过程、周转时间和带权周转时间的计算,具体解析如下:
一、题目背景与关键信息
题目中提到“单CPU条件下的作业执行”,但原始题目未明确给出作业的优先级、到达时间、运行时间等核心参数。根据答案反推,作业的关键参数如下:
- 作业1:到达时间0,运行时间10,优先级最高(非抢占式下优先执行)
- 作业2:到达时间1,运行时间4,优先级最低
- 作业3:到达时间2,运行时间3,优先级次之
二、问题(1):非抢占式优先级算法执行时间图
非抢占式优先级算法的规则是:始终选择就绪队列中优先级最高的作业执行,一旦开始执行就不被中断,直到作业完成。
- 0~10时间单位:作业1最先到达(时间0)且优先级最高,独占CPU执行,无其他作业抢占,10时间单位后完成。
- 10~13时间单位:作业1完成后,就绪队列中仅剩作业3(到达时间2,等待已久,优先级次之),执行3时间单位后完成。
- 13~17时间单位:最后执行作业2(到达时间1,优先级最低),运行4时间单位后完成。
执行顺序:作业1→作业3→作业2,时间轴为:0→10(作业1)→13(作业3)→17(作业2)。
三、问题(2):周转时间与平均周转时间
周转时间定义:作业从到达至完成的总时间,公式为
$\text{周转时间} = \text{完成时间} - \text{到达时间}$
计算各作业周转时间:
- 作业1:完成时间10,到达时间0,周转时间=10-0=10
- 作业2:完成时间17,到达时间1,周转时间=17-1=16
- 作业3:完成时间13,到达时间2,周转时间=13-2=11
平均周转时间:
$\text{平均周转时间} = \frac{10+16+11}{3} = \frac{37}{3} \approx 12.3$
四、问题(3):带权周转时间与平均带权周转时间
带权周转时间定义:周转时间与作业实际运行时间的比值,公式为
$\text{带权周转时间} = \frac{\text{周转时间}}{\text{运行时间}}$
计算各作业带权周转时间:
- 作业1:周转时间10,运行时间10,带权周转时间=10/10=1.0
- 作业2:周转时间16,运行时间4,带权周转时间=16/4=4.0
- 作业3:周转时间11,运行时间3,带权周转时间≈11/3≈3.7
平均带权周转时间:
$\text{平均带权周转时间} = \frac{1.0+4.0+3.7}{3} = \frac{8.7}{3} = 2.9$