假设T是从磁盘输入一块数据到缓冲区需要的时间,C是CPU对一块数据进行处理的时间,而M是将一块数据从缓冲区传送到用户区的时间。当一用户进程要按顺序访问的方式处理大量数据时,请问在单缓冲和双缓冲的情况下,系统对一块数据的处理时间分别是( )。

admin2017-04-28  35

问题 假设T是从磁盘输入一块数据到缓冲区需要的时间,C是CPU对一块数据进行处理的时间,而M是将一块数据从缓冲区传送到用户区的时间。当一用户进程要按顺序访问的方式处理大量数据时,请问在单缓冲和双缓冲的情况下,系统对一块数据的处理时间分别是(    )。

选项 A、max(T,C)+M,max(T,M+C)
B、max(T,M+C),max(T,C)+M
C、max(T,M)+C,max(T,M+C)
D、max(T,M+C),max(T,M)+C

答案A

解析 单缓冲工作示意图和时序图如图1—12所示。从图中可以看出:数据由I/O控制器到缓冲区和数据由缓冲区到工作区必须串行操作;同样,数据从缓冲区到工作区和CPU从工作区中取出数据进行处理也需串行进行;但由于在顺序访问时可采用预先读的方式,即CPU在处理一块数据(从工作区取数据)的同时可从磁盘输入下一块数据,所以系统对一块数据的处理时间为max(T,C)+M。

双缓冲的工作示意图和时序图如图1—13所示。由此可见,数据由I/O控制器到双缓冲和数据由双缓冲区到工作区可以并行工作,因此,系统对一块数据的处理时间为max(T,M+C)。
转载请注明原文地址:https://jikaoti.com/ti/znfjFFFM
0

最新回复(0)