Skip to content

I/O软件层次结构

考情分析

I/O 软件层次结构及各层功能是选择题常考内容。🔥🔥 中频。

硬件只管最底层的信号传输,但从用户的一句 read() 到磁头真正动起来,中间要经过好几层软件的接力——每层各管一摊事,缺一层都转不起来。

I/O 软件的四层结构

从上到下:

各层的功能

第 1 层:用户层 I/O 软件

功能说明
系统调用接口提供 read/write/open/close 等接口
库函数如 printf、scanf(封装系统调用)
SPOOLing假脱机程序(部分实现在用户层)

第 2 层:设备无关的操作系统软件

功能说明
统一接口为上层提供统一的 I/O 接口,屏蔽设备差异
设备命名将设备名映射到设备驱动程序
设备保护检查用户是否有权限访问设备
缓冲管理管理缓冲区
设备分配与回收分配和释放设备
差错处理处理设备无关的错误

核心思想

设备无关层的目标是让上层软件不关心具体使用的是哪种设备。比如读文件时,不需要知道文件存储在磁盘还是 SSD 上。

第 3 层:设备驱动程序

功能说明
接收上层命令将抽象的 I/O 请求翻译为具体的硬件操作
操作设备控制器设置设备控制器的寄存器,启动 I/O
设备特定每种设备有自己的驱动程序

驱动程序是唯一与设备硬件细节打交道的软件。可以把驱动程序理解为"翻译官"——上层说的是人话(read 512 字节),驱动程序翻译成设备听得懂的寄存器指令。

第 4 层:中断处理程序

功能说明
响应中断I/O 完成时,设备发出中断
保存/恢复现场保存和恢复被中断进程的状态
唤醒驱动程序通知驱动程序 I/O 操作已完成

一次 I/O 请求的完整流程

以读磁盘为例:

各层的对应关系

层次运行态与硬件关系
用户层用户态无关
设备无关层内核态无关
驱动程序内核态与特定设备相关
中断处理内核态与硬件中断机制相关

考研高频考点

  • 🔥🔥🔥 I/O 软件四层结构及各层功能
  • 🔥🔥 设备无关层的作用(统一接口、屏蔽差异)
  • 🔥🔥 驱动程序是唯一与硬件细节打交道的层
  • 🔥 I/O 请求从用户层到硬件的完整流程

层次结构讲清了"谁负责什么",下一篇来看用户程序那一端——应用程序通过哪些接口向 OS 发起 I/O 请求。

真题练习

相关真题(3题)

2013Q25选择题2分

I/O软件层次:设备驱动程序负责将逻辑请求转换为物理参数

2012Q26选择题2分

I/O软件层次:从上到下为用户级→设备无关→驱动程序→中断处理

2011Q26选择题2分

I/O请求流程:用户程序→系统调用→设备驱动→中断处理