单选题 在一单道批处理系统中,一组作业的提交时间和运行时间如下表所示。请问3种作业调度算法的平均周转时间是______。
{{B}}作业提交时间和运行时间表{{/B}}
作业 提交时间 运行时间
1 8.0 1.0
2 8.5 0.5
3 9.0 0.2
4 9.1 0.1
(1)先来先服务(2)短作业优先(3)响应比高者优先
  • A.0.5、0.875、0.825
  • B.0.85、0.875、0.625
  • C.0.85、0.675、0.825
  • D.0.5、0.675、0.625
【正确答案】 C
【答案解析】[解析] FCFS(先来先服务)和SJF(短作业优先)算法大家应该都很熟悉,这里不多解释。
高响应比优先算法的优先级=(等待时间+运行时间)/运行时间
周转时间=结束时间-提交时间=等待时间+运行时间=响应时间(仅在某些情况下成立,后面会讨论)
(1)FCFS(见下表)
{{B}}作业执行顺序为1、2、3、4{{/B}}
作业 提交时间 运行时间 开始时间 完成时间
1 8.0 1.0 8.0 9.0
2 8.5 0.5 9.0 9.5
3 9.0 0.2 9.5 9.7
4 9.1 0.1 9.7 9.8
该算法最简单,根据FCFS原则,作业执行顺序为1、2、3、4。 T=(1.0+1.0+0.7+0.7)/4=0.85 (2)SJF(见下表)
{{B}}作业执行顺序为1、3、4、2{{/B}}
作业 提交时间 运行时间 开始时间 完成时间
1 8.0 1.0 8.0 9.0
2 8.5 0.5 9.3 9.8
3 9.0 0.2 9.0 9.2
4 9.1 0.1 9.2 9.3
过程说明:作业1提交时,没有其他作业,故作业1马上开始运行,直到完成,此时有两个进程都在就绪队列,即作业2和作业3。根据SJF,选择作业3运行,直到完成,此时仍有两个进程在就绪队列,即作业2和作业4。根据SJF,选择作业4运行,直到完成,最后作业2运行,完成。 T=(1.0+1.3+0.2+0.2)/4=0.675 (3)高响应比(见下表)
{{B}}作业执行顺序{{/B}}
作业 提交时间 运行时间 开始时间 完成时间
1 8.0 1.0 8.0 9.0
2 8.5 0.5 9.0 9.5
4 9.0 0.2 9.6 9.8
3 9.1 0.1 9.5 9.6
作业1提交时,没有其他作业,故作业1马上开始运行,直到完成,此时有两个进程都在就绪队列,即作业2和作业3。此时作业2响应比为(0.5+0.5)/0.5=2,作业3响应比为(0+0.2)/0.2=1,根据响应比高者优先,选择作业2执行,直到完成,此时仍有两个进程在就绪队列中,即作业3和作业4。作业3响应比为(0.5+0.2)/0.2=3.5,作业4响应比为(0.4+0.1)/0.1=5,根据响应比高者优先,选择作业4执行,直到完成,最后作业3运行,完成。
T=(1.0+1.0+0.8+0.5)/4=0.825
关于响应时间和周转时间的关系如下:
响应时间:从提交第一个请求到产生第一个响应所用时间。(这个定义不好理解)
周转时间:从作业提交到作业完成的时间间隔。
如果大家多做几道这样的题会发现,这两个时间经常是相等的,即等待时间+运行时间。但既然有两个定义,就肯定有区别之处。之所以相等的原因是,这些题目太老了,这些题目中大都有个前提,“批处理系统中”,当产生第一次响应时,就是作业完成了。但在分时系统中,时间片结束后,就认为产生了第一个响应。