知识卡片

握手:外设与计算机的双向协调

专业/工作 · 1286.i

内容

计算机与外设之间的数据传输很少是单向的:即使打印机看起来只是”接收”数据,它也需要持续把自己的状态(是否缺纸、是否准备好接收、是否卡纸)通过状态字反馈给计算机,因为计算机产生数据的速度通常远快于外设处理数据的速度,若不加协调,快的一方会把慢的一方”甩下”导致数据丢失。这种双方通过持续对话交换状态、协调节奏的机制称为握手。发散:握手协议是最早的一种”背压”(backpressure)机制——生产者必须根据消费者反馈的处理能力调整发送节奏,这个思路原样出现在现代消息队列、流处理系统的限流设计里,只是载体从状态字变成了 ACK 信号或队列水位。

参考来源

《计算机科学概论》第2章《数据操控》