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
+关注
关注
68文章
10922浏览量
213281 -
缓存
+关注
关注
1文章
242浏览量
26783
原文标题:Buffer和Cache之间区别是什么?
文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
请问MSP430各型号之间的区别是什么?
EDIT和NGC文件之间的区别是什么?
Cache机制的原理是什么?
mCAN、msCAN和FlexCAN之间的区别是什么?
详谈嵌入式编程需注意的Cache机制和原理
![详谈嵌入式编程需注意的<b class='flag-5'>Cache</b>机制和原理](https://file.elecfans.com/web2/M00/49/40/poYBAGKhwJSASBrFAAA0DnlNzIk050.png)
寄存器和cache的区别介绍
Linux内核Page Cache和Buffer Cache两类缓存的作用及关系如何
![Linux内核Page <b class='flag-5'>Cache</b>和<b class='flag-5'>Buffer</b> <b class='flag-5'>Cache</b>两类缓存的作用及关系如何](https://file.elecfans.com/web2/M00/05/4A/pYYBAGDet7-AcS-1AACiXmSPUwY005.png)
评论