单缓冲和双缓冲的时间计算

在块设备输入数据的过程中,首先把磁盘数据送到缓冲区,花费的时间为Ts,(简记为Ts过程)

                                                   然后把操作系统缓冲区的数据送到用户区,花费的时间为Tm,(简记为Tm过程)

                                                   最后用户进程对这批数据进行计算,花费的时间为Tc。(简记为Tc过程)

当Tc过程与Tm过程操作同一块缓冲区时,这两个操作不能并行(读写锁),Ts过程和Tm一直都不能并行

单缓冲的情况如下:

       

当Ts>Tc,(上图)主要是Tm与Ts不能并行,因此总时间T=(n*(Ts+Tm)+Tc)/n=Ts+Tm

当Ts<Tc,(上图)主要是Tm与Tc不能并行,因此总时间T=(n*(Tc+Tm)+Ts)/n=Tc+Tm

综上,单缓冲下平均时间T=max(Ts,Tc)+Tm

 

双缓冲条件下,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)

综上,双缓冲平均时间为max(Tc,Ts)

 

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值