为什么我们必须等待I / O?
众所周知,磁盘操作速度很慢,我们知道它们速度很慢的原因。所以这里的问题是为什么我们必须等待I / O或为什么会有IOWait之类的东西? 我的意思是我已经注意到,当您在后台执行一些I / O任务时,您的计算机基本上会变慢很多,我特别注意到,在使用Linux时,如果您要执行更长的I / O任务,直到操作系统完成,操作系统几乎变得无法使用。 确实,我也在文章中找到了这个主题,其中有一个摘要: I / O等待率为12.1%。该服务器具有8个核心(通过cat / proc / cpuinfo)。这非常接近(1/8核心= 0.125) 所以从根本上讲,这意味着它会降低计算机的运行速度,为什么?我的意思是,好的,现在普通计算机至少有2个核心,有时是4个,有时是由于超线程等而拥有更多。但是现在的问题是,为什么CPU实际上必须呆在那里,除了等待IO之外,实际上不做其他任何事情?我的意思是流程管理的基本思想或体系结构,现在我不知道是操作系统负责还是将其归结为硬件部分,但应该让CPU等待或执行定期检查,同时实际执行许多其他任务,并且仅在准备就绪时返回IO流程。确实,如果这是一项艰巨的任务,而CPU必须等待,那为什么呢?这样可以更有效地利用硬件进行管理吗?例如,可能会有某种小型cpu会等待它,并在返回到流程后立即将一小部分数据传递到实际cpu,因此该流程将重复进行,而我们不必几乎将整个cpu核心专用于数据复制过程...还是我应该发明这种东西并为此获得诺贝尔奖?:S 现在,好了,我真的是从观察者的角度出发,我确实还没有深入探讨这个话题,但是我真的不明白为什么cpu必须以HDD的速度工作,尽管它可能只是做其他事情,一旦准备好就回到硬盘。这个想法不是要加快需要IO操作或复制过程或其他操作的应用程序的速度,而是要在执行该操作时将CPU占用的影响降到最低,以便OS可以将其用于其他进程和用户。进行某些复制操作时不必感到一般的计算机延迟...