单选题 28.假设T是从磁盘输入一块数据到缓冲区需要的时间,C是CPU对一块数据进行处理的时间,而M是将一块数据从缓冲区传送到用户区的时间。当一用户进程要按顺序访问的方式处理大量数据时,请问在单缓冲和双缓冲的情况下,系统对一块数据的处理时间分别是( )。
【正确答案】 A
【答案解析】单缓冲工作示意图和时序图如图1-11所示。从图中可以看出:数据由I/O控制器到缓冲区和数据由缓冲区到工作区必须串行操作;同样,数据从缓冲区到工作区和CPU从工作区中取出数据进行处理也需串行进行;但由于在顺序访问时可采用预先读的方式,即CPU在处理一块数据(从工作区取数据)的同时可从磁盘输入下一块数据,所以系统对一块数据的处理时间为max(T,C)+M。

双缓冲的工作示意图和时序图如图1-12所示。由此可见,数据由I/O控制器到双缓冲和数据由双缓冲区到工作区可以并行工作,因此,系统对一块数据的处理时间为max(T,M+C)。