设备管理 缓冲技术

目录

https://blog.csdn.net/weixin_45792450/article/details/109314765


缓冲区概述

I/O子系统可以使用主存或者磁盘上的存储空间来建立缓冲区,高速缓存来改善计算机效率。

引入缓冲区的主要目的如下:

  1. 克服速度传输时,发送方与接收方速度不匹配问题,利用缓冲区控制传输节奏
  2. 在数据传输规模不同的设备之间重新组装数据包,避免资源浪费
  3. 支持应用程序的复制语义

复制语义举例说明:
如果应用程序有一个数据缓冲区,使用系统调用将数据传递出去,但是按照正常逻辑,传递过程需要时间,如果这段时间程序改变了缓冲区的数据,那么复制的语义将受到破坏,复制的应是未变动前的数据,但实际复制的可能是改动后数据。

为避免这个问题,在控制权返回程序之前,将应用程序的数据复制到内核缓冲中,去操作传递出去的数据,这支持了复制语义。

缓冲区的特点

当缓冲区的数据非空时,不能往缓冲区注入数据;当缓冲区数据为空时,才能注入数据。

当缓冲区的数据不满时,不能获取缓冲区数据;当缓冲区数据为满时,才能获取数据。

主要的缓冲技术

主要有:单缓冲技术双缓冲技术循环缓冲技术缓冲池技术


单缓冲技术


双缓冲技术


循环缓冲技术


缓冲池技术