当第一块数据送入用户工作区后,缓冲区是空闲的可以传送第二块数据。这样第一块数据的处理C1与第二块数据的输入T2是可以并行的,依次类推,如图(b)所示。系统对每一块数据的处理时间为:Max(C,T)+M。因为,当T>C时,处理时间为M+T;当T<c时,处理时间为M+C。本题每一块数据的处理时间为15+5=20,Doc1文件的处理时间为20×10+1。
双缓冲可以实现对缓冲区中数据的输入T和提取M,与CPU的计算C,三者并行工作,如图(d)所示。从图中可以看出,双缓冲进一步加快了I/O的速度,提高了设备的利用率。在双缓冲时,系统处理一块数据的时间可以粗略地认为是Max(C,T)。如果C<T,可使块设备连续输入;如果C>T,则可使系统不必等待设备输入。本题每一块数据的处理时间为10,采用双缓冲需要花费的时间为15×10+5+1=156。