通常程序执行 IO 操作时,需要涉及用户空间和内核空间的两个缓冲区。 只有内核才能跟磁盘等硬件进行操作,因此数据在流向程序时,必定会先存在于内核缓冲区,内核缓冲区又称为 PageCache,不同操作系统的 PageCache 机制不一样。 内核缓冲区:系统内核在内核空间中定义的内核缓冲区,即 PageCache。 用户缓冲区:通过 C 语言或其它语言提供的标准 IO 读写函数在用户空间定义的缓冲区。 从上图中可以看到,IO 操作有两种方式: 缓冲IO:同时使用用户缓冲区和内核缓冲区。需要 3 次数据复制以及 1 次…