计算机中buffer和cache的理解

Linux中Buffer和Cache的区别

Cache 和 Buffer的区别

做者:知乎用户
连接:https://www.zhihu.com/question/26190832/answer/32387918
来源:知乎
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。

cache 是为了弥补高速设备和低速设备的鸿沟而引入的中间层,最终起到**加快访问速度**的做用。
而 buffer 的主要目的进行流量整形,把突发的大数量较小规模的 I/O 整理成平稳的小数量较大规模的 I/O,以**减小响应次数**(好比从网上下电影,你不能下一点点数据就写一下硬盘,而是积攒必定量的数据之后一整块一块儿写,否则硬盘都要被你玩坏了)。
=======================
如下观点属于程老大,无节操默写:
一、 Buffer(缓冲区)是系统两端处理 速度平衡(从长时间尺度上看)时使用的。它的引入是为了减少短时间内突发I/O的影响,起到 流量整形的做用。好比生产者——消费者问题,他们产生和消耗资源的速度大致接近,加一个buffer能够抵消掉资源刚产生/消耗时的忽然变化。
二、 Cache(缓存)则是系统两端处理 速度不匹配时的一种 折衷策略。由于CPU和memory之间的速度差别愈来愈大,因此人们充分利用数据的局部性(locality)特征,经过使用存储系统分级(memory hierarchy)的策略来减少这种差别带来的影响。 三、假定之后存储器访问变得跟CPU作计算同样快,cache就能够消失,可是buffer依然存在。好比从网络上下载东西,瞬时速率可能会有较大变化,但从长期来看倒是稳定的,这样就能经过引入一个buffer使得OS接收数据的速率更稳定,进一步减小对磁盘的伤害。 四、TLB(Translation Lookaside Buffer,翻译后备缓冲器)名字起错了,其实它是一个cache.
相关文章
相关标签/搜索