2

我在网上阅读了很多关于多线程/异步/并行编程的文章,并且经常遇到如下类似的声明。

在写入文件时,即使同时有等待处理的请求,也不会使用 CPU。这些系统的一般表现是响应时间长且 CPU 使用率低,即使在压力条件下也是如此。

写入文件时没有使用 CPU 怎么办?

希望我的问题很清楚。

4

3 回答 3

4

CPU 正在等待硬件表明它已完成处理请求的操作,您的处理器不会将文件写入硬盘,这由您的 IDE/SATA/RAID 控制器处理。

于 2013-10-02T13:36:57.393 回答
2

基本上,当您在文件上“写入”时,您会将信息发送到硬盘驱动器(该位使用 CPU),但是您需要等待信息已物理写入磁盘。此等待时间不使用 CPU,但比前一个等待时间要长得多。同样,加载时,您花费 99% 的时间等待硬盘驱动器物理获取信息。

于 2013-10-02T13:38:43.907 回答
1

因为 CPU 正在等待磁盘的响应。磁盘是一个独立的单元,它通过串行总线(或旧磁盘的并行总线)与 CPU 通信。内部驱动器和外部驱动器之间的技术差异实际上主要在于它是在计算机盒内部还是外部。

将一包数据发送到要写入的磁盘,然后 CPU 只能等到磁盘完成它的工作,然后返回请求的操作状态。

于 2013-10-02T13:38:25.047 回答