首页 > 试题广场 >

假定把磁盘上的一个数据块中的信息输入到一个双缓冲区的时间为T

[单选题]
假定把磁盘上的一个数据块中的信息输入到一个双缓冲区的时间为T=0.1ms,将缓冲区中的数据传送到用户区的时间M=0.05ms,而CPU对数据的处理时间C=0.05ms,这样系统对每个数据块的处理时间为()。
  • 0.05ms
  • 0.1ms
  • 0.15ms
  • 0.25ms
推荐
对于单缓冲:
假定从磁盘把一块数据输入到缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据处理的时间为 C。由于T和C是可以并行的,当T>C时,系统对每一块数据的处理时间为M十T,反之则为M+C,故可把系统对每一块数据的处理时间表示为Max(C, T)+M。
对于双缓冲:
系统处理一块数据的时间可以粗略地认为是MAC(C, T)。如果C<T,可使块设备连续输入(图中所示情况);如果C>T,则可使CPU不必等待设备输入。对于字符设备,若釆用行输入方式,则釆用双缓冲可使用户在输入完第一行之后,在CPU执行第一行中的命令的同时,用户可继续向第二缓冲区输入下一行数据。而单缓冲情况下则必须等待一行数据被提取完毕才可输入下一行的数据。
编辑于 2016-04-02 11:58:00 回复(3)
因为是双缓冲区,所以在把磁盘上的一个数据块中的信息输入到一个双缓冲区的时间为T=0.1ms的时间内可以并行执行 将缓冲区中的数据传送到用户区(0.5ms)以及 CPU对数据的处理 (0.5ms),所以 系统对每个数据块的处理时间为0.5ms!!!
发表于 2015-08-25 20:26:45 回复(1)
没人给讲解下
发表于 2015-08-13 23:13:56 回复(0)
因为是双缓冲,所以从磁盘读数据到缓冲区和CPU处理缓冲区数据可以同步进行,因此时间为0.1ms
发表于 2015-08-17 20:38:26 回复(2)
Kev头像 Kev
单缓冲:缓冲区数据传输到用户区后,才能再从磁盘读取数据。
双缓冲:缓冲区数据传输到用户区的同时,也能从磁盘读取数据。(理解为两个缓存工作)
发表于 2017-10-11 11:54:39 回复(0)
参考上面的加自己的想法,不知道对不对
对于单缓冲:
假定从磁盘把一块数据输入到缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据处理的时间为 C。由于T和C是可以并行的,当T>C时,系统对每一块数据的处理时间为M十T,反之则为M+C,故可把系统对每一块数据的处理时间表示为Max(C, T)+M。
。。。。。。表是T+M的时间
。。。。。。表示M+C的时间   取较长的
即M与T、M与C不能并行,所以时间为Max(C, T)+M
对于双缓冲:
系统处理一块数据的时间可以粗略地认为是MAC(C, T)。如果C<T,可使块设备连续输入(图中所示情况);如果C>T,则可使CPU不必等待设备输入。对于字符设备,若釆用行输入方式,则釆用双缓冲可使用户在输入完第一行之后,在CPU执行第一行中的命令的同时,用户可继续向第二缓冲区输入下一行数据。而单缓冲情况下则必须等待一行数据被提取完毕才可输入下一行的数据。
。。。。。。表示T
。。。。。。表示M
。。。。。。表示C
都可以并行所以时间为Max(C, T,M)
发表于 2017-08-31 11:05:12 回复(0)
双缓冲条件下,Ts过程与Tm过程可以并行,Tm过程与Tc过程不能并行




当Ts>Tc时,(上图)由于Tm<<Tc且Tm<<Ts,所以T=(n*Ts+Tm+Tc)/n=Ts=max(Tc,Ts)



当Ts<Tc时,Tm与Tc不能并行,T=(n*(Tm+Tc)+Ts)/n=Tm+Tc=max(Tc,Ts)+Tm,但Ts<Tc这种情况非常少,所以一般做题时填双缓冲的时间都填Ts>Tc情况下的max(Tc,Ts)

发表于 2021-08-04 15:48:04 回复(0)
可以看一下这篇文章,这里的处理时间应该是指一个大约的平均时间
发表于 2022-04-10 22:14:35 回复(0)
学而时习之,不亦说乎
发表于 2022-03-31 09:37:36 回复(0)
单缓冲区,处理一块时间是MAX(C, T)+M(假设开始缓冲区满,那么先M的时间传到用户区,然后 用户区处理(时间C) 和 磁盘传入缓冲区(时间T) 两个过程同时开始),看C和T哪个长决定结束时间(完成对一块的处理)。
双缓冲区的差别在于,T和C+M同时发生,而不必等M结束再开始T。处理一块的时间为MAX(C+M, T)。(假设缓冲区一满一空,满的缓冲区传入用户区并处理的时间为M+C,而磁盘数据输入另一个缓冲区的时间是T,以上两组过程是并行的,最终结束时间取决于较长的一组)
发表于 2022-02-18 09:13:44 回复(0)
還以為是問“一塊數據從進入緩衝區到離開緩衝區所經歷的時間”。這是無法根據題目的條件求出的。
實際上題目問的是“數據塊流入/流出的時間間隔”,與“緩衝區的流量”相關。
“等待時間”與“流量”是不同的。例如若每塊數據進入緩衝區之後都要等待一百年,但只要每時每刻都有數據進進出出,緩衝區的流量就很大。

如果題目能說得清楚一些就好了。
编辑于 2020-06-07 15:05:44 回复(0)
不要忽略双缓冲。
编辑于 2018-12-19 21:12:15 回复(0)
对于单缓冲:
假定从磁盘把一块数据输入到缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据处理的时间为 C。由于T和C是可以并行的,当T>C时,系统对每一块数据的处理时间为M十T,反之则为M+C,故可把系统对每一块数据的处理时间表示为Max(C, T)+M。
对于双缓冲:
系统处理一块数据的时间可以粗略地认为是MAC(C, T)。如果C<T,可使块设备连续输入(图中所示情况);如果C>T,则可使CPU不必等待设备输入。对于字符设备,若釆用行输入方式,则釆用双缓冲可使用户在输入完第一行之后,在CPU执行第一行中的命令的同时,用户可继续向第二缓冲区输入下一行数据。而单缓冲情况下则必须等待一行数据被提取完毕才可输入下一行的数据。
发表于 2017-05-12 09:57:54 回复(0)
好比排队吃饭,排得慢,吃得快,第二个人刚吃,第一个都到家了,
发表于 2017-02-14 11:37:30 回复(0)
假定从磁盘把一块数据输入到缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据处理的时间为 C。由于T和C是可以并行的,当T>C时,系统对每一块数据的处理时间为M十T,反之则为M+C,故可把系统对每一块数据的处理时间表示为Max(C, T)+M。
对于双缓冲:
系统处理一块数据的时间可以粗略地认为是MAC(C, T)。如果C<T,可使块设备连续输入(图中所示情况);如果C>T,则可使CPU不必等待设备输入。对于字符设备,若釆用行输入方式,则釆用双缓冲可使用户在输入完第一行之后,在CPU执行第一行中的命令的同时,用户可继续向第二缓冲区输入下一行数据。而单缓冲情况下则必须等待一行数据被提取完毕才可输入下一行的数据。
发表于 2016-09-10 21:51:53 回复(0)
注意题目中是双缓冲区,这样会使两者并行操作。
发表于 2016-07-08 11:06:23 回复(0)
在双缓冲情况下,如果从设备到缓冲区之间传输数据花费的时间为t,处理器处理数据所花的时间为tp,操作系统将数据从缓冲区传送到
内存所花的时间为tm,则系统对数据的处理时间为max(t,tp,tm),因为tm<t,所以处理时间为max(t,tp),如果t<tp,则处理器不必
等待输入设备输入数据,在t>tp的情况下,输入设备可以连续输入数据块

发表于 2016-05-30 20:41:12 回复(0)
真的 有那么 复杂么
双缓冲  +  多级执行, 那么就是花费的最大时间吧...
发表于 2015-09-21 11:23:32 回复(0)