首先要明确一点:缓冲不等于缓存 (中文翻译 导致两者很容易被认为同一东东)英文上分别为buffer 和cache
其次两者的定义:
①缓冲:缓冲是针对I/O设备而言的,缓冲是I/O设备中 块到内存的映射。一个缓冲区的大小等于一个块大小。一个块不能超过一个页的大小,一个页可以容纳一个或多个块。
②缓存:缓存是一种文件系统的操作机制。它是把内存中最近操作的磁盘数据 马上释放,而是暂时将这些数据仍然放于内存中,以便下次访问磁盘中该数据时,直接从内存读取。缓存是由物理页组成的。
区别:①缓冲是真的块I/O设备而言的;缓存是针对文件系统而言的。
②缓冲与块对应;缓存与页对应。
联系:为了能够缓存块I/O ,便有了bio结构