Skip to content

I/O控制方式

考情分析

四种 I/O 控制方式的对比是选择题高频考点,DMA 的工作原理尤其常考。🔥🔥🔥 高频核心。

CPU 速度是磁盘的十万倍——如果每次读写都让 CPU 干等,整台机器的性能就被最慢的设备拖垮了。

四种 I/O 控制方式的演进

I/O 控制方式的发展方向:减少 CPU 对 I/O 操作的干预,让 CPU 可以做更有价值的工作。

1. 程序直接控制方式(轮询/查询)

特点说明
CPU 参与CPU 全程忙等,不断查询状态
数据传输单位(一次一个字)
优点实现简单
缺点CPU 利用率极低(CPU 99% 时间在轮询)

2. 中断驱动方式

特点说明
CPU 参与发出命令后可做其他事,中断时才处理 I/O
数据传输单位
优点CPU 利用率提高(不再忙等)
缺点每传一个字都要中断一次,频繁中断开销大

3. DMA 方式

DMA(Direct Memory Access,直接存储器存取):由 DMA 控制器直接控制数据在内存和设备之间传输,不需要 CPU 逐字干预。DMA 就像你雇了个搬家工人——你只需说"把客厅的箱子搬到卡车上",然后自己去做别的事,搬完他会通知你。

特点说明
CPU 参与只在传输开始和结束时介入
数据传输单位
优点CPU 利用率高,适合高速设备
缺点每次只能传一个连续的数据块到连续内存

DMA 控制器的组成

寄存器功能
内存地址寄存器(MAR)数据在内存中的起始地址
数据计数器(DC)剩余要传输的字节数
数据缓冲寄存器(DR)暂存正在传输的数据
命令/状态寄存器控制 DMA 操作 / 报告状态

4. 通道控制方式

通道是一个专用 I/O 处理器,可以执行通道程序(一组 I/O 指令),独立于 CPU 完成 I/O。

特点说明
CPU 参与只需发出"启动通道"指令,通道自行完成
数据传输单位一组块
优点一次可完成多个数据块的传输,甚至涉及不连续内存
缺点通道硬件昂贵

四种方式的对比

比较程序直接控制中断驱动DMA通道
CPU 干预全程干预每个字中断每个块中断每组块中断
传输单位一组块
数据流向设备→CPU→内存设备→CPU→内存设备→内存设备→内存
CPU 利用率最低较低较高最高
响应速度最快较快较慢最慢

关键区分

程序直接控制和中断驱动方式,数据都要经过 CPU(设备→CPU 寄存器→内存)。DMA 和通道方式,数据直接在设备和内存之间传输,不经过 CPU。

DMA vs 中断驱动

比较中断驱动DMA
CPU 介入频率每个中断一次每个中断一次
数据通路设备→CPU→内存设备→内存(不经 CPU)
适用设备低速设备高速块设备(磁盘)

考研高频考点

  • 🔥🔥🔥 四种 I/O 控制方式的对比(CPU 干预程度/传输单位/数据流向)
  • 🔥🔥🔥 DMA 方式中数据不经过 CPU 直接传到内存
  • 🔥🔥🔥 中断驱动以字为单位,DMA 以块为单位
  • 🔥🔥 DMA 控制器的组成(MAR/DC/DR)
  • 🔥 通道是专用的 I/O 处理器

知道了 CPU 与设备之间怎么传数据,接下来该看这些控制逻辑在软件层面是怎么分层组织的——下一篇聊 I/O 软件层次结构。

真题练习

相关真题(6题)

2026Q32选择题2分

中断处理:中断处理程序将数据从设备数据寄存器传输到内核缓冲区

2022Q23选择题2分

I/O控制:DMA方式由DMA控制器完成传送,不需CPU执行传送程序

2022Q32选择题2分

设备驱动:驱动程序与I/O控制方式密切相关

2017Q32选择题2分

DMA流程:初始化→数据传输→中断请求→中断处理

2014Q26选择题2分

I/O完成后:将进程从阻塞态改为就绪态

2010Q32选择题2分

键盘输入:中断处理程序首先获得键盘输入信息