Process 为什么I/O绑定进程更快?

Process 为什么I/O绑定进程更快?,process,operating-system,Process,Operating System,通常,CPU运行一段时间而不停止,然后进行系统调用以读取文件或写入文件。当系统调用完成时,CPU将再次计算,直到需要更多数据或必须写入更多数据,依此类推 一些进程将大部分时间用于计算,而另一些进程则将大部分时间用于等待I/O。前者称为计算绑定;后者被称为I/O-bound。计算绑定进程通常具有较长的CPU突发,因此I/O等待不频繁,而I/O绑定进程具有较短的CPU突发,因此I/O等待频繁 随着CPU速度的加快,进程趋向于 获取更多I/O绑定 原因和方式? 已编辑: 这不是一个家庭作业问题。我在

通常,CPU运行一段时间而不停止,然后进行系统调用以读取文件或写入文件。当系统调用完成时,CPU将再次计算,直到需要更多数据或必须写入更多数据,依此类推

一些进程将大部分时间用于计算,而另一些进程则将大部分时间用于等待I/O。前者称为计算绑定;后者被称为I/O-bound。计算绑定进程通常具有较长的CPU突发,因此I/O等待不频繁,而I/O绑定进程具有较短的CPU突发,因此I/O等待频繁

随着CPU速度的加快,进程趋向于 获取更多I/O绑定

原因和方式?


已编辑


这不是一个家庭作业问题。我在研究这本书(Tanenbaum的《现代操作系统》)时发现了这件事。我不明白这个概念,所以我在这里问。请不要将此问题标记为家庭作业。

使用更快的CPU,使用CPU的时间将减少(给定相同的代码),但执行I/O的时间将保持不变(给定相同的I/O性能),因此在I/O上花费的时间百分比将增加,I/O将成为瓶颈

这并不意味着“I/O绑定进程更快”

随着CPU速度的提高,进程往往会受到更多I/O限制

它想说的是:

随着CPU速度的提高,进程的速度往往不会与CPU速度成比例地增加,因为它们会受到更多的I/O限制

这意味着I/O绑定的进程比非I/O绑定的进程慢,而不是更快

为什么会这样?好吧,当只有CPU速度提高时,系统的所有其他部分的速度都没有提高。您的硬盘仍然是相同的速度,您的网卡仍然是相同的速度,甚至您的RAM仍然是相同的速度*。因此,随着CPU速度的提高,程序的限制因素变得越来越少,CPU速度越来越慢,但更多的是关于I/O的速度有多慢。换句话说,程序自然会变得越来越受I/O限制。换句话说:
。随着CPU速度的提高,进程的I/O限制也会增加


*注意:从历史上看,其他一切都随着CPU的使用而在速度上有所提高,只是没有那么多。例如,CPU从4MHz增加到2GHz,速度提高了500倍,而硬盘速度从1MB/s左右增加到70MB/s,增长了70倍。

@Yi Jiang:谢谢你的编辑,赶紧忘了;)@zvrba:这不是家庭作业问题。我在研究这本书(Tanenbaum的《现代操作系统》)时发现了这件事。我不明白这个概念,这就是我为什么要在这里提问的原因。@Chankey,别担心,祝你在SO+1上好运。“进程的速度往往不会随着CPU速度(增加)而成比例增加”。在我的回答中,我忽略了这一点。随着更快的CPU,人们给CPU更多的工作要做,承担他们以前认为不可能或不切实际的事情。