【问题标题】:Why I/O-bound processes are faster?为什么 I/O-bound 进程更快?
【发布时间】:2011-04-14 12:49:29
【问题描述】:

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

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

随着 CPU 变得越来越快,进程倾向于 获得更多 I/O 绑定。

为什么以及如何?


已编辑

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

【问题讨论】:

  • @Yijiang:感谢编辑,匆忙忘记了;)
  • @zvrba :这不是作业问题。我正在研究这本书(Tanenbaum 的现代操作系统)并在那里发现了这个问题。我没有得到这个概念,这就是我在这里问的原因。
  • @Chankey,别担心,祝你好运

标签: process operating-system


【解决方案1】:

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

它想说的是:

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

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

为什么会这样?好吧,当只有 CPU 速度提高时,系统的所有其余部分都没有提高速度。你的硬盘还是一样的速度,你的网卡还是一样的速度,甚至你的内存也是一样的速度*。因此,随着 CPU 速度的提高,限制程序的因素变得越来越少,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 倍。

【讨论】:

  • +1。 “进程的速度往往不会与 CPU 速度(增加)成比例增加”。我在回答中错过了这方面。
【解决方案2】:

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

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

【讨论】:

  • 有了更快的 CPU,人们可以让 CPU 做更多的工作,承担他们以前认为不可能或不切实际的事情。
猜你喜欢
  • 2015-07-05
  • 1970-01-01
  • 2018-07-15
  • 2010-10-16
  • 1970-01-01
  • 2013-07-20
  • 2012-08-25
  • 2023-03-19
  • 1970-01-01
相关资源
最近更新 更多