单选题 假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为100μs,缓冲区送用户区的时间是60μs,系统对每个磁盘块数据的处理时间为50μs。若用户需要将大小为10个磁盘块的File1文件逐块从磁盘读入缓冲区,并送用户区进行处理,那么采用单缓冲需要花费的时间为______μs;采用双缓冲需要花费的时间为______μs。
单选题
  • A.1000
  • B.1110
  • C.1650
  • D.2100
【正确答案】 C
【答案解析】
单选题
  • A.1000
  • B.1110
  • C.1650
  • D.2100
【正确答案】 B
【答案解析】[解析] 本题表面上看是考查文件读取,但实际上需要应用到流水线技术。因为进行处理时,每个数据要经过3个步骤:读入缓冲区、送用户区、处理。这三个步骤不能简单地使用流水线技术,因为其中有两个步骤都需要用到缓冲区,这两个步骤执行时,缓冲区都不可以开始下一个磁盘区的相关工作,所以三个步骤可合并为两个:读入缓冲区并送用户区、处理。此时,可应用流水线的方式来提升效率。所以用户将大小为10个磁盘块的File1文件逐块从磁盘读入缓冲区,并送用户区进行处理,采用单缓冲时需要花费的时间为
(100+60+50)+(10-1)×(100+60)=1650(μs)
若增加一个缓冲区,情况如下图所示。
[*]

执行时空图

从图可知,使用双缓冲区时,从磁盘向缓冲区中传送数据的工作可通过两个缓冲区持续交替进行(注意磁盘不可同时向两个缓冲区传送数据,因为磁盘的工作原理不允许这样做),所以需要时间为
100×10+60+50=1110(μs)