单选题 ______调度算法有利于CPU繁忙型的作业,而不利于I/O繁忙型的作业(进程)。
  • A.时间片轮转调度算法
  • B.先来先服务调度算法
  • C.短作业(进程)优先算法
  • D.优先权调度算法
【正确答案】 B
【答案解析】[解析] 目前存在着多种调度算法,有的算法适合作业调度;有的算法适用于进程调度;但也有些调度算法,既可用于作业调度,也可用于进程调度。
其中,先来先服务(FCFS)调度算法是一种最简单的调度算法。当在作业调度中采用该算法时,每次调度是从后备作业队列中,选择一个或多个最先进入该队列的作用,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。
在进程调度中,采用FCFS调度算法时,则每次调度就是从就绪队列中选择一个最先进入该队列的进程,把处理机分配给它,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后,才放弃处理机。
FCFS算法比较有利于长作业(进程),而不利于短作业(进程),表1所示为A、B、C、D四个作业分别到达系统的时间、要求服务的时间、开始执行时间及各自的完成时间,并计算各自的周转时间和带权周转时间。
表1
四个作业情况表
进程名 到达时间 服务时间 开始执行时间 完成时间 周转时间 带权周转时间
A 0 1 0 1 1 1
B 1 100 1 101 100 1
C 2 1 101 102 100 100
D 3 100 102 202 199 1.99
从表1中可以看出,其中短作业C的带权周转时间竟高达100,而长作业D的带权周转时间仅为1.99。 由此可见,FCFS调度算法有利于CPU繁忙型的作业,而不利于I/O繁忙型的作业(进程)。CPU繁忙型作业,是指该类作业需要大量的CPU时间进行计算,而很少请求I/O。通常的科学计算便属于CPU繁忙型作业。I/O繁忙型作业是指CPU进行处理时,又需频繁地请求I/O,而每次I/O的操作时间却很短,目前大多数的事物处理,都属于I/O繁忙型作业。 可以通过一个例子来说明采用FCFS调度算法的调度性能,表2中有5个进程A、B、C、D和E,它们到达的时间分别是0、1、2、3和4,所要求的服务时间分别是4、3、5、2和4,由表中还可以看出,A、B、C、D和E的完成时间分别是4、7、12、14和18,从每个进程的完成时间中减去其到达时间,即得到每个进程的周转时间,进而可以算出每个进程的带权周转时间。 表2
FCFS调度算法性能
作业情况 进程名称 A B C D E 平均
到达时间 0 1 2 3 4
调度算法 服务时间 4 3 5 2 4
FCTS 完成时间 4 7 12 14 18
周转时间 4 6 10 11 14 9
带权周转时间 1 2 2 5.5 3.5 2.8