NknSのSitE

Back

Chapter VII

CSAPP NOTE CHAP VII

Chap 7 输入输出#

输入输出子系统#

I/O子系统层次结构#

I/O子系统包括I/O软件和I/O硬件。软件分为用户空间和内核空间。

  • 用户空间: 用户程序 (printf), 运行时系统
  • 内核空间:
    • 与设备无关的I/O软件
    • 设备驱动程序
    • 中断服务程序
  • I/O硬件

image-20251116043721158

I/O软件核心#

image-20251116043758585

与设备无关的I/O软件#

提供统一的抽象视图,隐藏设备差异。

  • 为设备驱动提供统一接口
  • 缓冲处理 (管理内核缓冲区)
  • 错误报告 (处理通用错误)
  • 逻辑块大小处理 (统一块大小)
  • 打开/关闭文件 (抽象为文件)

设备驱动程序#

与具体设备相关,由设备商提供。

  • 包含I/O端口的访问逻辑
  • 实现具体I/O操作
  • 处理特定设备的中断
  • 根据I/O控制方式 (程序、中断、DMA) 实现

I/O硬件连接#

image-20251116043813922

I/O端口和I/O指令#

image-20251116043833389

设备控制器#

I/O设备的电子部分,包含数据缓冲、状态/控制寄存器。这些寄存器统称为 “I/O端口”

I/O端口编址#

为I/O端口编号。IA-32采用独立编址,I/O地址空间与内存地址空间分离,允许64K个8位端口。

I/O指令#

访问I/O端口的特权指令。

  • IN: 从端口读数据到AL/AX。
  • OUT: 写数据从AL/AX到端口。

数据传送方式#

  • 无条件传送: CPU直接读写,假定外设恒定就绪,只用于同步设备。
  • 查询传送: CPU循环查询外设状态(“忙-等待”),若准备好则传送。浪费CPU资源。

image-20251116043901704

  • 中断传送: CPU启动I/O后执行其他程序。外设就绪后发”中断请求”,CPU响应并处理数据。

image-20251116043851632

  • DMA (直接存储器访问): CPU让出总线控制权,外设与主存之间直接成批传送数据,完成后再中断CPU。