【发布时间】:2016-02-12 10:09:28
【问题描述】:
据我所知,CPU 通常比 I/O 设备(如 HDD、网络、RAM 等)更快,因此在复制文件时,瓶颈通常是 I/O 受限的(对?)。
如果在某些情况下 I/O 设备比 CPU 快(例如在虚拟机中),是否可以让 CPU 忙于移动数据(例如从缓冲区到内核空间,从内核空间到用户空间)?然后它会成为 CPU 密集型的吗?
【问题讨论】:
-
IO 设备永远不会比 CPU 快,除非它们有自己的 CPU,否则它们仍然必须从 CPU 发出命令。此外,当复制文件时,CPU 只是向 IO 设备发出命令,它不进行复制。此外,VM 将存储在 IO 设备上并加载到 RAM 中,而 RAM 永远不会比 CPU 快。
-
通常 I/O 不是 CPU 密集型的,因为数据传输是由 I/O 处理器(例如 DMA 控制器)执行的。如果您希望文件副本受 CPU 限制,则使用 PIO、编程输入/输出执行传输。
标签: linux io linux-kernel operating-system kernel