某操作系统采用双缓冲区传送磁盘上的数据。设一次从磁盘将数据传送到缓冲区所用时间为T 1 ,一次将缓冲区中数据传送到用户区所用时间为T 2 (假设T 2 远小于T 1 、T 3 ),CPU处理一次数据所用时间为T 3 ,则处理该数据共重复n次该过程,系统所用总时间为( )。
【正确答案】 D
【答案解析】解析:本题考查磁盘的缓冲区。本题需分情况讨论:如果T 3 >T 1 ,即CPU处理数据比数据传送慢,磁盘将数据传送到缓冲区,再传送到用户区,除了第一次需要耗费的T 1 +T 2 +T 3 时间,剩余数据可以视为CPU进行连续处理,总共花费(n一1)T 3 所以系统所用总时间为T 1 +T 2 +nT 3 。如果T 3 <T 1 ,即CPU处理数据比数据传送快,此时除了第一次可以视为I/O连续输入,磁盘将数据传送到缓冲区,与缓冲区中数据传送到用户区及CPU处理数据,两者可视为并行执行,则花费时间主要取决于磁盘将数据传送到缓冲区所用时间T 1 ,前n一1次总共为(n一1)T 1 ,而最后一次T 1 时间完成后,还要花时间从缓冲区传送到用户区及CPU还要处理,即还要加上T 2 +T 3 的时间,所以总时间为nT 1 +T 2 +T 3 。综上所述,总的时间为(n一1)×MAX(T 1 ,T 3 )+T 1 +T 2 +T 3