2016-11-10 101 views
0

我的问题是我们为什么要让CPU的操作与I/O处理的操作重叠。我一直在考虑优化等,但尚未得出结论。关于CPU操作和I/O处理

如果有人能够回答这个问题,那将会很棒。 :D

+0

“CPU操作与I/O处理重叠”是什么意思?你能否澄清,也许举一些例子? –

+0

来自CPU pov的IO操作类似于“在此处写入,现在继续读取直到有点翻转”或“在此写入,现在执行其他操作直到中断产生”。正如你所看到的,有足够的空间做有用的事情,而不是连续阅读等待中断无所事事。 –

回答

1

与CPU的工作频率相比,I/O通常非常慢。

假设您有一个1GHz的CPU,能够在每个时钟周期执行一条指令。这意味着CPU能够每纳秒执行一条指令。

现在让我们假设你想从你的硬盘获取一些数据。磁盘操作通常以毫秒为单位进行,我们假定您的驱动器速度足够快,仅需1ms即可获取数据。

如果CPU只是坐在一旁等待磁盘读取数据,CPU将浪费100万毫微秒,而它可能会执行另一个任务的一百万条指令。当一个程序有很多IO访问时,如果让CPU等待并且什么都不做,那么这些浪费的周期会堆积起来并变得很明显。这就是为什么将计算与IO重叠,这样不会浪费CPU周期。

这也是为什么当您的主内存已满时,您的计算机会变得超级无响应,并且CPU必须频繁地将页面分页到磁盘。你的CPU不能执行任何有用的任务,除非它需要的数据已经从磁盘检索到主存储器中,所以它必须坐下来等待IO完成。