登录  注册

首页->操作系统原理

在某系统中,从磁盘将一块数据输入到缓冲区需要花费的时间为T,CPU对一块数据进行处理的时间为C,将缓冲区的数据传送到用户区所花时间为M,那么在单缓冲和双缓冲情况下,系统处理大量数据时,一块数据的处理时间为多少?

答:在无缓冲的情况下,为了读取磁盘数据,应先从磁盘把一块数据输入到用户数据区,所花费的时间为T;然后再由CPU对这一块数据进行计算,计算时间为C,所以每一块数据的处理时间为T+C。 (1)在单缓冲的情况下,应先从磁盘把一块数据输入到缓冲区,所花费的时间为T;然后由OS将缓冲区的数据传送到用户区,其所花的时间为M;接下来便由CPU对这一块数据进行计算,计算时间为C。由于CPU的计算操作与磁盘的数据输入操作可以并行,因此一块数据的处理时间为max(C,T)+M (2)在双缓冲区的情况下,应先从磁盘把一块数据输入到第一个缓冲区,当装满第一个缓冲区后,操作系统可将第一个缓冲区的数据传送到用户区并对第一块数据进行计算时,与此同时可以将磁盘输入数据送入第二个缓冲区;当计算完成后,若第二个缓冲区已装满数据,则又可以将第二个缓冲区中的数据传送至用户区并对第二块数据进行计算时,与此同时可以将磁盘输入数据送入第一个缓冲区,如此反复交替使用2个缓冲区。当C>T时,计算操作比输入操作慢,在此情况下,上一块数据计算完成后,仍需将一个缓冲区中的数据传送到用户区,花费时间为M,再对这块数据进行计算,花费时间为C,所以一块数据的处理时间为C+M,即max(C,T)+M;当C
【解析】第六章 难易度:中
继续答题:下一题
微考学堂微考学社

更多操作系统原理试题