0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Buffer和Cache之间区别是什么?

Dbwd_Imgtec 来源:未知 作者:steve 2018-04-02 10:35 次阅读

1 ,buffer(缓冲)

是为了提高内存和硬盘(或其他I/O设备)之间的数据交换的速度而设计的。

2, cache(缓存)

CPU角度考虑,是为了提高cpu和内存之间的数据交换速度而设计的,例如平常见到的一级缓存、二级缓存、三级缓存。

cpu在执行程序所用的指令和读数据都是针对内存的,也就是从内存中取得的。由于内存读写速度慢,为了提高cpu和内存之间数据交换的速度,在cpu和内存之间增加了cache,它的速度比内存快,但是造价高,又由于在cpu内不能集成太多集成电路,所以一般cache比较小,为了进一步提高速度,又增加了二级cache,甚至三级cache,它是根据程序的局部性原理而设计的,就是cpu执行的指令和访问的数据往往在集中的某一块,所以把这块内容放入cache后,cpu就不用在访问内存了,这就提高了访问速度。当然若cache中没有cpu所需要的内容,还是要访问内存的。

从内存读取与磁盘读取角度考虑,cache可以理解为操作系统为了更高的读取效率,更多的使用内存来缓存可能被再次访问的数据。

缓冲(buffers)是根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。linux有一个守护进程定期清空缓冲内容(即写入磁盘),也可以通过sync命令手动清空缓冲。

简单来说,buffer是即将要被写入磁盘的,而cache是被从磁盘中读出来的。 buffer是由各种进程分配的,被用在如输入队列等方面。一个简单的例子如某个进程要求有多个字段读入,在所有字段被读入完整之前,进程把先前读入的字段放在buffer中保存。

cache经常被用在磁盘的I/O请求上,如果有多个进程都要访问某个文件,于是该文件便被做成cache以方便下次被访问,这样可提高系统性能。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10434

    浏览量

    206520
  • 缓存
    +关注

    关注

    1

    文章

    220

    浏览量

    26437

原文标题:Buffer和Cache之间区别是什么?

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问MSP430各型号之间区别是什么?

    哪位用过MSP430各型号之间区别是什么最近在用MSP430单片机,他们型号很多,知不知道他们之间区别是什么比如MSP430F149与MSP430F2274
    发表于 04-16 06:35

    EDIT和NGC文件之间区别是什么?

    EDIF文件和NGC文件之间的基本区别是什么?这两个文件类型都指定netlist?那么微妙的差异是什么呢?以上来自于谷歌翻译以下为原文What is the basic difference
    发表于 05-23 10:13

    MCBSP当中的三种Buffer Format之间有什么区别

    MCBSP当中的Buffer Format,有3种 Mcbsp_BufferFormat_1SLOT、Mcbsp_BufferFormat_MULTISLOT_NON_INTERLEAVED、Mcbsp_BufferFormat_MULTISLOT_INTERLEAVED,请大师指教
    发表于 06-04 09:33

    Cache机制的原理是什么?

    的高速度。CPU与外设交换数据时经常用到buffer(缓冲),这与缓存极其相似,只不过Cache是为了提高CPU和内存之间的数据交换速度而设计,而buffer是为了提高内存和硬盘(或其
    发表于 10-12 06:01

    芯片和集成电路之间区别是什么

    `  谁来阐述一下芯片和集成电路之间区别是什么?`
    发表于 03-24 17:15

    GPRS模块和GSM模块之间区别是什么?

    GPRS模块和GSM模块之间区别是什么?
    发表于 06-22 06:31

    mes系统和erp系统之间区别是什么?

    WHAT-MES是什么?WHY-为什么上MES?常见MES的模块有哪些?mes系统和erp系统之间区别是什么?
    发表于 09-18 07:11

    步进电机和伺服电机的区别是什么?它们之间有哪些联系?

    步进电机和伺服电机的区别是什么?它们之间有哪些联系?
    发表于 10-08 08:31

    ARM/DSP/FPGA之间有什么联系?区别是什么?

    ARM/DSP/FPGA之间有什么联系?区别是什么?
    发表于 10-25 07:54

    mCAN、msCAN和FlexCAN之间区别是什么?

    我不明白 mCAN、msCAN 和 FlexCAN 之间区别是什么,或者为什么存在这么多不同版本的 can 外设。 是否有关于每个产品的文档?
    发表于 03-29 08:19

    寄存器和cache区别介绍

    本文开始阐述了CACHE的概念、CACHE替换机构与读写操作,其次介绍了寄存器的原理以及它的主要技术,最后阐述了寄存器和cache两者之间区别
    发表于 04-11 14:10 1.2w次阅读

    Linux内核Page CacheBuffer Cache两类缓存的作用及关系如何

    page)即为页缓存(page cache)。块缓存(buffer cache),则是内核为了加速对底层存储介质的访问速度,而构建的一层缓存。
    的头像 发表于 07-02 14:25 2337次阅读
    Linux内核Page <b class='flag-5'>Cache</b>和<b class='flag-5'>Buffer</b> <b class='flag-5'>Cache</b>两类缓存的作用及关系如何

    BufferCache的定义

    但是让我问你,由于 Buffer 只是将写入磁盘的数据的缓存。反过来,它还会缓存从磁盘读取的数据吗?或者 Cache 是从文件中读取数据的缓存,那么它是否也为写入文件缓存数据呢?
    的头像 发表于 05-13 09:53 1452次阅读

    Buffercache区别

    Bbuffer 与 Cache 非常类似,因为它们都用于存储数据数据,被应用层读取字节数据。
    的头像 发表于 07-01 10:44 2793次阅读

    buffercache区别

    buffercache区别 缓冲区(Buffer)和缓存(Cache)是计算机系统中用于提高数据读写效率的两个关键概念,它们虽然功能有所
    的头像 发表于 12-07 11:00 410次阅读