1. 程序轮询 (Polling)

  • 机制:CPU 不断查询状态寄存器(Busy Waiting),直到设备就绪。
  • 缺点踏步 (Busy Wait)。CPU 利用率极低,就像你每隔 1 分钟去门口看快递来了没。

2. 中断驱动 (Interrupt-Driven)

  • 机制:设备准备好后发信号(IRQ),CPU 暂停当前工作,保存现场,执行中断服务程序 (ISR)。
  • 本质被动响应。CPU 从“主动查询”变为“被通知”。
  • 缺点:对于大量数据传输(如磁盘读写),频繁中断会产生巨大的上下文切换开销。

3. DMA (Direct Memory Access) - 高并发核心

  • 机制:CPU 将总线控制权交给 DMA 控制器。DMA 直接在内存和外设之间搬运数据,搬完了一次性中断通知 CPU。
  • 控制方式
    • CPU 停止法:DMA 独占总线,CPU 挂起。
    • 周期挪用 (Cycle Stealing):DMA 偷用一个存取周期,CPU 稍微顿一下。
  • DevOps 启示零拷贝 (Zero-copy) 技术(如 sendfile)就是利用 DMA 将文件从磁盘直接搬到网卡,完全不经过 CPU 和用户态内存。

4. 关联链接

  • 网络编程:BIO (阻塞/轮询) vs NIO (IO 多路复用/中断通知) 的硬件对应。
  • 高性能计算:RDMA (Remote DMA) 允许跨网络直接读写远程内存。