某操作系统采用双缓冲区传送磁盘上的数据。设一次从磁盘将数据传送到缓冲区所用时间为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
。