Buffer Cache notes

Buffer(缓冲)是为了提高内存和硬盘(或其他I/O设备)之间的数据交换的数据而设计的。
Cache(缓存)是为了提高CPU和内存之间的数据交换而设计的,一级、二级、三级缓存...

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

Buffer是根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和磁盘的反复寻道,从而提高系统性能。

Cache位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为了减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能。

简单的说,Buffer是即将被写入磁盘的,而Cache是被从磁盘中读出来的。

Buffer是由各种进程分配的,被用在如输入队列等方面,例子:某个进程要求有多个字段读入,在所有字段被读入完整之前,进程把先读入的字段放在Buffer中保存。

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

猜你喜欢

转载自alimama.iteye.com/blog/1350514