四类IO方式的区别

核心定位速记:

  1. 程序I/O(查询式I/O):CPU全程“盯梢”,主动查询设备状态,全程占用CPU,效率最低。

  2. 中断驱动I/O:CPU“放手”,设备就绪后发中断通知CPU处理,仅中断时刻占用CPU,适配中低速设备。

  3. DMA(直接存储器访问):专用硬件控制器“代劳”数据搬运,CPU仅初始化+结束中断,无CPU数据拷贝,适配高速单设备批量传输。

  4. I/O通道:专用I/O处理器,可编程,可管理多设备并发传输,CPU仅发启动指令,干预最少,适配大型机/多设备复杂场景。


四大I/O方式核心差异对比表(408必考)

对比项 程序I/O(查询式) 中断驱动I/O DMA I/O通道
核心控制者 CPU(全程主导) CPU(仅中断时处理) DMA控制器(硬件) 专用I/O通道处理器(可编程)
CPU干预程度 极高:全程查询+数据拷贝 较低:初始化+中断处理 极低:仅初始化+传输结束中断 最低:仅发通道启动指令+最终中断
数据传输路径 CPU寄存器 ↔ I/O设备 CPU寄存器 ↔ I/O设备 内存 ↔ I/O设备(直传 内存 ↔ I/O设备(通道调度直传)
传输粒度 字节/字(单次1个单位) 字节/字 连续数据块 多块数据、非连续地址
设备管理能力 一对一,单次控制一个设备 一对一/多对一,可多设备排队 一对一,单个设备专属DMA 一对多,可管理多个设备+控制器
灵活性 最低,硬件固化,无编程性 较低,仅中断触发,无自主调度 较低,仅连续块传输,参数需CPU重配 最高,可编程(通道程序),适配新设备/新流程
适用场景 低速简易设备(LED、按键) 中低速设备(键盘、打印机、串口) 高速单设备(磁盘、网卡、显卡) 大型机/服务器,多设备并发(多磁盘、多外设集群)
效率排序 1(最低) 2 3 4(最高)

补充关键细节(易考点)

  1. 程序I/O 无中断,CPU陷入查询循环,哪怕设备空闲也一直占用CPU,是最原始的I/O方式。

  2. 中断驱动I/O解决了程序I/O的“忙等”问题,但数据拷贝仍需CPU完成(这是它和DMA的核心区别)。

  3. DMA的核心优势是脱离CPU完成数据直传,但它无独立指令集,只能做“搬运工”,不能做调度。

  4. I/O通道是DMA的“升级版”:有精简指令集(通道指令),能执行通道程序,相当于给I/O系统配了“小CPU”,实现多设备并发调度。


一句话总结

  • 程序I/O:CPU干所有活;

  • 中断驱动:CPU干“指挥+收尾”,数据拷贝仍自己来;

  • DMA:CPU干“初始化+收尾”,数据拷贝交给硬件;

  • I/O通道:CPU只“下令”,其余全交给通道处理器。