通常,CPU运行一段时间而不停止,然后进行系统调用以从文件读取或写入文件。系统调用完成后,CPU会再次计算,直到需要更多数据或必须写入更多数据为止。
有些进程将大部分时间用于计算,而其他进程则将大部分时间用于等待I / O.前者称为计算限制;后者称为 I / O绑定。计算绑定进程通常具有较长的CPU突发,因此I / O等待很少,而I / O绑定进程具有短CPU突发,因此频繁的I / O等待。
随着CPU变得越来越快,流程趋向于 获得更多的I / O限制。
为什么以及如何?
已修改:
这不是一个家庭作业问题。我正在研究这本书(Tanenbaum的现代操作系统)并在那里发现了这个问题。我没有得到这个概念,这就是我在这里问的原因。请不要将此问题标记为作业。
答案 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倍。