缓存cache和缓冲区buffer

本文详细阐述了缓存(cache)和缓冲(buffer)的概念及其应用场景。缓存用于解决系统两端处理速度不匹配的问题,利用数据局部性特点提高访问效率。而缓冲则用于平衡系统两端在长时间尺度上的处理速度,抵消短期内突发I/O的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、cache

  1、cache的定义。从宏观上讲,缓存是处理速度不匹配的问题。可以是静态缓存(内存缓存、磁盘缓存)、动态缓存(前端的缓存)和数据库缓存。另一个角度,从CPU来看,可以是寄存器和内存之间的缓存,可能会有几级缓存,比如三级缓存。

  2、cache缓存算法。

      cache缓存及其实现:https://www.cnblogs.com/davidwang456/p/4001342.html

      LRU缓存淘汰算法:http://flychao88.iteye.com/blog/1977653

二、cache和buffer的区别

  1、Buffer(缓冲区)是系统两端处理速度平衡(从长时间尺度上看)时使用的。它的引入是为了减小短期内突发I/O的影响,起到流量整形的作用。比如生产者——消费者问题,他们产生和消耗资源的速度大体接近,加一个buffer可以抵消掉资源刚产生/消耗时的突然变化。不能收到一点数据就写入磁盘,这样对磁盘有损伤,而是在buffer里面积攒一定量存入。

  2、 Cache(缓存)则是系统两端处理 速度不匹配时的一种 折衷策略。因为CPU和memory之间的速度差异越来越大,所以人们充分利用数据的局部性(locality)特征,通过使用存储系统分级(memory hierarchy)的策略来减小这种差异带来的影响。
  3、假定以后存储器访问变得跟CPU做计算一样快,cache就可以消失,但是buffer依然存在。比如从网络上下载东西,瞬时速率可能会有较大变化,但从长期来看却是稳定的,这样就能通过引入一个buffer使得OS接收数据的速率更稳定,进一步减少对磁盘的伤害。
  4、TLB(Translation Lookaside Buffer,翻译后备缓冲器)名字起错了,其实它是一个cache.
  5、从软硬件角度,cache是从磁盘往外读取数据的;buffer是将数据存入磁盘的。



转载于:https://www.cnblogs.com/huangfuyuan/p/9415886.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值