缓冲
为了缓和cpu与I/O设备速度不匹配的矛盾,提高它们之间的并行性,在现代计算机系统中,几乎所有的I/O设备在与CPU交换数据时,都用了缓冲区。缓冲管理的主要职责是组织好这些缓冲区,并向进程提供获得和释放缓冲区的手段。
缓冲机制的作用:1)缓和CPU和I/O设备间速度不匹配的矛盾 2)减少对CPU 的中断频率 3)提高CPU和I/O设备的并行性
可以通过下面这个例子分析缓冲区对CPU中断频率和响应时间的影响。
例子:在一个远程通信系统中,在本地接收从远程终端发来的数据,速率为100kb/s。
1)对于一位缓冲
CPU中断频率为100kb/1b=100k,CPU响应时间为10us。
2)对于一个8缓冲区
设备可以等到8位缓冲区填充完后再向CPU发出中断,所以CPU中断频率为100kb/8b=12.5k
当缓冲区填满时,不能再接受下一位的输入,所以CPU的响应时间必须是1b/100kb=10us。
3)对于两个8位缓冲区
设备可以等到1号8位缓冲区填充完后再向CPU发出中断,所以CPU中断频率为100kb/8b=12.5k
当1号8位缓冲区填满时,可以将本区内容传递至2号缓冲区进行送内存操作,而1号缓冲区继续接受下8位数据,所以CPU的响应时间必须是8b/100kb=80us。
缓冲的实现机制:
按照系统中设置的缓冲区个数及对缓冲区的组织方式,缓冲区的实现机制分为单缓冲、双缓冲、循环缓冲、缓冲池机制。
1)单缓冲
在块设备输入数据的过程中,首先把磁盘数据送到缓冲区,花费的时间为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
2)
双缓冲条件下,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)
3)循环缓冲
相比双缓冲区,增加了缓冲区的数量。对于多缓冲区,将它们组织成循环缓冲的形式。
4)缓冲池
为了提高缓冲区的利用率,目前广泛采用公用缓冲池机制。在缓冲池中设置多个缓冲区,可供若干个进程共享。
参考博客:https://blog.csdn.net/a649339266/article/details/77836813
相关阅读
做淘宝为了是可以挣钱,创业,买房子,买车,这是无数淘宝卖家的创业梦想,刚开店的卖家都认为遥不可及,太难了,根本就是无法做到,无法想象的事
随着国内电子商务的逐步发展,如何有效管理网店生意,逐步成了众多企业的关注重点随着订单量的日益增长,其中发货导致的客户投诉不断
在中国南方一个新兴的城市—深圳,成立三十年时间,诞生了许多优秀的科技型企业,华为公司就是其中的一个。华为公司成立于1984年,从三万
1,安装nrmnpm install nrm -g 2, 可以使用 nrm ls 命令查看默认配置, 带*号即为当前使用的配置3,nrm add 命令添加公司私有npm源,
2016年6月,金天鹅酒店管理软件免费打通与去哪儿平台的直连;2016年10月,金天鹅酒店管理系统正式打通与携程平台的无缝连接,酒店可免费