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

时间:2010-09-20 06:53:45

标签: process operating-system

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

有些进程将大部分时间用于计算,而其他进程则将大部分时间用于等待I / O.前者称为计算限制;后者称为 I / O绑定。计算绑定进程通常具有较长的CPU突发,因此I / O等待很少,而I / O绑定进程具有短CPU突发,因此频繁的I / O等待。

  

随着CPU变得越来越快,流程趋向于   获得更多的I / O限制。

为什么以及如何?


已修改

这不是一个家庭作业问题。我正在研究这本书(Tanenbaum的现代操作系统)并在那里发现了这个问题。我没有得到这个概念,这就是我在这里问的原因。请不要将此问题标记为作业。

2 个答案:

答案 0 :(得分:12)

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

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

答案 1 :(得分:5)

  
    

随着CPU变得越来越快,进程往往会受到更多的I / O限制。

  

它试图说的是:

  
    

随着CPU变得越来越快,进程往往不会与CPU速度成比例地增加速度,因为它们会获得更多的I / O限制。

  

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

为什么会这样?好吧,当只有CPU速度增加时,系统的所有其余部分的速度都没有增加。你的硬盘仍然是相同的速度,你的网卡速度仍然是相同的,即使你的RAM仍然是相同的速度*。因此,随着CPU速度的增加,程序的限制因素变得越来越少,但是I / O的速度越来越慢。换句话说,程序自然会转向越来越多的I / O限制。换句话说:..as CPU gets faster, processes tend to get more I/O-bound

*注意:从历史上看,其他所有内容的速度都会随着CPU的提升而提高,而不是那么多。例如,CPU从4MHz到2GHz,速度提高了500倍,而硬盘速度从大约1MB / s增加到70MB / s,增加了70倍。