单选题 在有一台处理机CPU和两台输入/输出设备IO1和IO2,且能够实现抢先式多任务并行工作的多道程序内,投入运行优先级由高到低P1,P2,P3三个作业。它们使用设备的先后顺序和占用设备时间分别是:
作业P1:IO2(30ms),CPU(10ms),IO1(30ms),CPU(10ms)。
作业P2:IO1(20ms),CPU(20ms),IO2(40ms)。
作业P3:CPU(30ms),IO1(20ms)。
在对于其他辅助操作时间可以忽略不计的假设下,作业P1,P2,P3从投入到完成,CPU的空闲时长为______。假定在系统中仅有这三个作业投入运行。
  • A.10
  • B.20
  • C.30
  • D.40
【正确答案】 B
【答案解析】[解析] 在多任务系统中,多任务在宏观上是并行的,微观上是串行的。从宏观上看,多任务并行使用系统资源(如处理器、I/O设备);微观上,大部分资源是在串行地为这些任务服务。因此,系统必须进行调度,使系统资源有效合理地为任务提供服务。调度的算法有先来先服务法、优先数法、短作业优先法、响应比高者优先法等。优先数法调度时,根据作业的优先级别,级别高者先调度。在抢先式多任务系统中,CPU是可抢先的,即任何时刻CPU总是分配给需要CPU的优先级最高的作业。
根据题意,P1,P2,P3的运行优先级由高到低,在抢先式并行工作方式下,作业的执行时序图如图所示。
[*]
有些考生不能理解此图。这个时序图应这么看:P1前30ms使用IO2,所以时序图中,IO2第一段30ms标记为P1。P2前20ms使用IO1,IO1第一段20ms标记为P2;P3前20ms使用CPU,CPU第一段20ms标记为P3;还有一点要注意,CPU资源是可以抢占的,从30~40看得出来,P2本来要用20 ms CPU,但还只用了10ms就被P1抢去了。所以从图中可知,三个作业从投入到完成总的运行时间为90ms。CPU,IO1,IO2的有效工作时间均为70ms,因此CPU有20ms时间是空闲的。