https://blog.csdn.net/weixin_45792450/article/details/109314765
I/O子系统可以使用主存或者磁盘上的存储空间来建立缓冲区,高速缓存来改善计算机效率。
引入缓冲区的主要目的如下:
复制语义举例说明:
如果应用程序有一个数据缓冲区,使用系统调用将数据传递出去,但是按照正常逻辑,传递过程需要时间,如果这段时间程序改变了缓冲区的数据,那么复制的语义将受到破坏,复制的应是未变动前的数据,但实际复制的可能是改动后数据。
为避免这个问题,在控制权返回程序之前,将应用程序的数据复制到内核缓冲中,去操作传递出去的数据,这支持了复制语义。
当缓冲区的数据非空时,不能往缓冲区注入数据;当缓冲区数据为空时,才能注入数据。
当缓冲区的数据不满时,不能获取缓冲区数据;当缓冲区数据为满时,才能获取数据。
主要有:单缓冲技术,双缓冲技术,循环缓冲技术,缓冲池技术