Buffer和cache的区别是什么?

如题所述

buffer和cache是两个经常被混为一谈的概念。从直观上说,两者都具备改善系统 I/O 吞吐量的能力,但是这两个概念是有区别的,其提高系统I/O吞吐量的原因也不尽相同。
cache改善系统性能的主要原因是数据访问的局部性
,即,通常应用程序在一段时间内操作的数据集的某个有限的部分,通常是很小的一部分。硬件实现的cache通常会只使用一小块(与主存相比)访问速度很快,但相对比较昂贵的存储部件,并放置于距离CPU较近的位置。
buffer改善系统性能的主要原因是减少不必要的状态切换和设备I/O。由于制造工艺等个方面的原因,系统中不同部件的速度往往是不一样的,一次
进行批量的操作(例如,预先读取,或者将写数据凑成一个整数之后再写),往往要比到需要时等待这些操作完成要节省时间,并且有效地降低状态切换导致的开销。
还有一个比较显著的区别是,cache通常是硬件或OS提供,用户程序不需要(多数情况下也没有办法)为其分配存储的机制,通常它在使用者,如用户
程序看来是透明的,它属于提供cache的一方而不是其使用者;而buffer往往是由用户程序知道并且与OS共享(换言之,用户程序需要分配一块内存,
并告诉OS这块内存将要用于某种操作),或由OS分配,并在主机和外设之间共享(例如网卡的DMA
buffer),在使用者看来它通常不是透明的,这些内存往往属于控制内存的程序,如用户程序,或OS,而不是向其传递数据的OS,或硬件。
不过,这个区别主要是传统意义上的cache。最近几年引入的一些新概念,特别是Internet
cache并不能用这种方法来区分。我认为最关键的区别其实在于,buffer主要作用是在于减少实际的I/O操作次数,即,将多次操作尽量合并成一次的
成批操作,通常其中的数据在操作完成之后,buffer不会被继续使用;而cache的主要作用在于更好地利用局部性原理,减少不必要的I/O,避免代价
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-19
网页里有。。]

Linux中Buffer和Cache的区别
简单来说,buffer是即将要被写入磁盘的,而cache是被从磁盘中读出来的。 buffer是由各种进程分配的,被用在如输入队列等方面。一个简单的例子如某个进程要求有多个字段读入,在所有字段被读入完整之前,进程把先前读入的字段放在buffer中保存。cache经常被用在磁盘的I\/O请求上,如果有多个进程都要访问某...

Buffer和Cache的区别
1. Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而 Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能。Cache并不...

cache和buff的区别
主要区别:Cache是为了提高数据读取速度,存储访问速度较慢的系统中的数据的缓存区域。当CPU请求读取数据时,首先从Cache中查找,若找到则直接返回数据,从而减少对主存的访问次数。而Buffer则是用于协调数据传输的速度差异,比如硬盘与CPU之间的数据传输速度差异,或内存与设备接口之间的数据传输速度差异。Buffer...

CentOS命令buffer和cache 的区别
buffer 与cache 的区别1、 CacheCache:高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时...

Buffer和Cache的区别
还有一个比较显著的区别是,cache通常是硬件或OS提供,用户程序不需要(多数情况下也没有办法)为其分配存储的机制,通常它在使用者,如用户 程序看来是透明的,它属于提供cache的一方而不是其使用者;而buffer往往是由用户程序知道并且与OS共享(换言之,用户程序需要分配一块内存, 并告诉OS这块内存将...

Cache和Buffer的区别
以下就 Cache 和 Buffer 之间最根本的区别说明一下:Cache 一般翻译为“高速缓存”或简称“缓存”,一般当出现“传输或存储上的效率层级”时,Cache 才会出现,它的作用就是 [把效率低一级的最常数据用效率高但容量小的存储容器存放],比如CPU Cache相对于内存、内存相对于磁盘、磁盘相对于网络传输,...

Linux中Buffer和Cache的区别
buffer: 作为buffer cache的内存 ,是块 设备的读写缓冲区 cache: 作为page cache的内存, 文件系统的cache 如果cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache住,那么磁盘的读IO bi会非常小。Buffer和Cache的区别 缓存(cached)是把读取过的数据 保存起来,重新读取时若...

缓冲区(buffer)与缓存(cache) 的概念理解
一、缓冲区:数据传输的缓冲地带<\/ 缓冲区,如同内存中的一个临时避风港,是预留的一片存储空间,用于存放输入或输出的数据,其存在是为了在高速设备与低速设备之间构建桥梁,解决速度不匹配带来的问题。它具有明确的大小,分为输入缓冲区和输出缓冲区,分别对应数据的输入和输出过程。二、为何引入缓冲区:...

缓冲区(buffer)与缓存(cache) 的概念理解
缓冲区(buffer)是内存中预留的存储空间,用于暂时存放输入或输出的数据,以缓解设备速度差异带来的影响。分为输入缓冲区和输出缓冲区,旨在提高计算机效率,例如打印机缓冲可以避免CPU等待打印,减少磁盘读写次数。缓冲区类型有全缓冲、行缓冲和不带缓冲,刷新时机通常在缓冲区满或文件关闭时。缓存(cache)则...

Linux中内存buffer和cache的区别
buffer是由各种进程分配的,由进程和系统一起管理.被用在如输入队列等方面,一个简单的例子如某个进程要求有多个字段读入,在所有字段被读入完整之前,进程把先前读入的字段放在buffer中保存。cache经常被用在磁盘的I\/O请求上,如果有多个进程都要访问某个文件,于是该文件便被做成cache以方便下次被访问,...

相似回答