IO缓冲(buffer)和高速缓存(cache)

IO缓冲区

在计算机存储体系中,缓存(cache)的使用非常的广泛,结合程序的局部性原理,为了提高寻址的效率,在CPU寻址的体系中采用了缓存技术,简单来说就是将数据存储起来以备后续使用。

如高速缓存(cache)产生的原理类似,在 I/O 过程中,读取磁盘的速度相对内存读取速度要慢的多。因此为了能够加快处理数据的速度,需要将读取过的数据缓存在内存里。而这些缓存在内存里的数据就是高速缓冲区(buffer cache),下面简称为 buffer

具体来说,buffer 是一个用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。一方面,通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据时,速度快的设备的操作进程不发生间断。另一方面,可以保护硬盘或减少网络传输的次数。

Buffer 和 Cache

buffer(缓冲) 和 cache(缓存) 是两个不同的概念:

  • cache 是高速缓存,用于 CPU 和内存之间的缓冲,是在读取硬盘中的数据时,把最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。
  • buffer是 I/O 缓存,用于内存和硬盘的缓冲,是在向硬盘写入数据时,先把数据放入缓冲区,然后再一起向硬盘写入,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。

简单的说,cache 是加速 ,而 buffer 是缓冲 ,前者解决读的问题,保存从磁盘上读出的数据,后者是解决写的问题,保存即将要写入到磁盘上的数据。

你可能感兴趣的:(操作系统,操作系统)