为什么缓冲 I/O 的最大速度是无缓冲 I/O 的两倍?

为什么缓冲 I/O 的最大速度是无缓冲 I/O 的两倍?

这是我最近参加的操作系统考试中的一个问题。我无法通过 Google 找到真正明确的答案,所以我想问问这里的天才们 :)

需要考虑两件事:只有一个进程执行 I/O、一个硬盘和一个缓冲区。

答案1

缓冲区比 HDD 更快,并且 HDD 写入一个长序列比写入大量短序列更快。

因此,可以“快速”地填充缓冲区(SATA 高达 3Gbit/s),然后“快速”地将其作为一个数据序列写入(~70Mb/s 磁盘写入)。

相比之下,写入大量微小位比较“慢”,每次都必须等待 HDD 排队(寻道时间通常为 ~8-12 毫秒)。

答案2

使用缓冲 I/O 时,发送方只需尽可能快地发送数据。如果没有缓冲区,则必须由接收方告知发送方已准备好接收更多数据。

相关内容