Operating system 关于CPU操作和I/O处理

Operating system 关于CPU操作和I/O处理,operating-system,Operating System,我的问题是,为什么我们希望CPU的操作和I/O处理的操作重叠。我一直在考虑优化等问题,但尚未得出结论 如果有人能回答这个问题,那就太好了与CPU的工作频率相比,DI/O通常非常慢 假设您有一个1GHz的CPU,它能够在每个时钟周期执行一条指令。这意味着CPU能够每纳秒执行一条指令 现在,假设您想从硬盘上获取一些数据。磁盘操作通常以毫秒级进行,我们假设您的驱动器足够快,只需1ms即可获取数据 如果CPU只是坐在那里等待磁盘获取数据,CPU将浪费100万纳秒的时间无所事事,而它可能会为另一项任务执行

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


如果有人能回答这个问题,那就太好了与CPU的工作频率相比,D

I/O通常非常慢

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

现在,假设您想从硬盘上获取一些数据。磁盘操作通常以毫秒级进行,我们假设您的驱动器足够快,只需1ms即可获取数据

如果CPU只是坐在那里等待磁盘获取数据,CPU将浪费100万纳秒的时间无所事事,而它可能会为另一项任务执行100万条指令。当一个程序有很多IO访问时,如果让CPU等待而什么也不做,这些浪费的周期就会堆积起来,变得很明显。这就是为什么将计算与IO重叠是个好主意,这样就不会浪费CPU周期


这也是为什么当主内存已满时,计算机会变得超级无响应,CPU必须频繁地对磁盘进行分页。除非所需的数据已从磁盘检索到主内存中,否则CPU无法执行任何有用的任务,因此它必须坐在那里等待IOs完成

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

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

现在,假设您想从硬盘上获取一些数据。磁盘操作通常以毫秒级进行,我们假设您的驱动器足够快,只需1ms即可获取数据

如果CPU只是坐在那里等待磁盘获取数据,CPU将浪费100万纳秒的时间无所事事,而它可能会为另一项任务执行100万条指令。当一个程序有很多IO访问时,如果让CPU等待而什么也不做,这些浪费的周期就会堆积起来,变得很明显。这就是为什么将计算与IO重叠是个好主意,这样就不会浪费CPU周期


这也是为什么当主内存已满时,计算机会变得超级无响应,CPU必须频繁地对磁盘进行分页。除非所需的数据已从磁盘检索到主内存中,否则CPU无法执行任何有用的任务,因此它必须坐在那里等待IOs完成

“CPU的操作与I/O处理的操作重叠”是什么意思?请您澄清一下,或者举个例子。CPU pov的IO操作类似于“在此处写入此内容。现在继续从此处读取,直到有点翻转”或“在此处写入此内容。现在执行其他操作,直到出现中断”。正如你所看到的,有足够的空间去做有用的事情,而不是等待中断而不做任何事情。你说“CPU的操作与I/O处理的操作重叠”是什么意思?请您澄清一下,或者举个例子。CPU pov的IO操作类似于“在此处写入此内容。现在继续从此处读取,直到有点翻转”或“在此处写入此内容。现在执行其他操作,直到出现中断”。正如你所看到的,有足够的空间去做有用的事情,而不是继续阅读,而不是什么都不做就等着被打断。