一文明白缓存与缓冲,chche与buffer到底是干啥的?

1.缓冲,buffer

(1)定义

缓冲区是用来保存两个设备之间或者设备与应用程序之间所传输数据的内存区域。

(2)设置缓冲区的目的或者缓冲区的作用是

①首先一个作用是为了处理数据流的生产者和消费者的速度差异
②其次是为了协调传输数据大小不一致的设备。
还有以一个作用是支持应用程序的复制语义
所谓的复制语义理解如下:想要将内存的数据写入磁盘中,使用write()系统调用,根据复制语义,需要写入的数据是发出write()系统调用时的版本,之后程序缓冲区的变化不需要顾虑。这时内核缓冲区就会派上用场,用于存储所需要版本的数据。

2.缓存 cache

(1)定义

高速缓存是可以保存数据副本的高速存储器,高速缓存区数据的访问要比原始数据的访问更为高效

3.两者的区别

缓冲与缓存的区别是缓冲可能保存着数据唯一的副本,而根据定义高速缓存只是提供了一个驻留在其他地方的数据高速存储上的一个副本,可能会有多个副本,为的就是访问高效。

另外提一点,缓存与缓冲可以是同一块内存区域

猜你喜欢

转载自blog.csdn.net/weixin_44142774/article/details/114629492