Pat*_*ray 36 io operating-system
我正在学习操作系统,但有一个我无法理解的小概念.假设进程1正在CPU上运行,然后它发出I/O请求以从磁盘读取.为了提高效率,CPU在处理此请求时开始执行进程2.这一切都有意义,但I/O不需要使用CPU吗?

我的问题:为什么不需要CPU来处理进程1的请求?
Dou*_*gvj 67
有助于理解I/O的三个重要方面在计算机体系结构中的作用:中断,DMA和硬件控制器.
当CPU向硬盘发出I/O请求时,硬盘有自己的专用芯片,称为设备(或硬件)控制器,专门用于处理来自CPU的命令,例如从磁盘读取.最初这些是为CPU执行特定操作的简单芯片,但现代硬件控制器基本上是他们自己的带有固件和所有东西的微处理器,因此它们能够在没有主CPU帮助的情况下进行非常复杂的操作.当硬盘驱动器的控制器忙于执行请求时,主CPU可以随心所欲地执行任何操作,例如在您的示例中执行过程2.控制器能够使用所谓的直接内存访问(DMA)控制器直接读写系统RAM,
当硬盘驱动器完成请求并且相关数据已通过DMA加载到RAM中时,它会发出一个中断请求,通知CPU数据已加载到RAM中.此时,CPU可以将控制权转移回过程1.因此,CPU不需要对I/O所涉及的所有任务进行微观管理.过去曾经是这种情况,但这些技巧(中断,DMA,特殊控制器)的发明是为了提高CPU性能并提高效率.