Appearance
设备的基本概念与分类
考情分析
设备分类和设备控制器是 I/O 章节的基础概念,选择题偶有考查。🔥 低频但基础。
一台计算机连着键盘、磁盘、网卡几十种设备,速度从每秒几字节到几百兆字节横跨百万倍——OS 要管好这些设备,第一步是把它们分清楚。
I/O 设备的分类
按使用特性分类
| 类型 | 说明 | 示例 |
|---|---|---|
| 人机交互类 | 用于人机通信 | 键盘、鼠标、显示器、打印机 |
| 存储设备 | 用于数据存储 | 磁盘、磁带、光盘、U 盘 |
| 网络通信设备 | 用于网络通信 | 网卡、调制解调器 |
按传输速率分类
| 类型 | 速率 | 示例 |
|---|---|---|
| 低速设备 | 几~几百字节/秒 | 键盘、鼠标 |
| 中速设备 | 几千~几万字节/秒 | 打印机 |
| 高速设备 | 几十万~几百万字节/秒 | 磁盘、网卡 |
按信息交换单位分类
| 类型 | 传输单位 | 示例 | 特点 |
|---|---|---|---|
| 块设备 | 数据块(如 512B) | 磁盘、SSD | 可寻址,可随机访问 |
| 字符设备 | 单个字符 | 键盘、打印机、串口 | 不可寻址,顺序访问 |
按共享属性分类
| 类型 | 说明 | 示例 |
|---|---|---|
| 独占设备 | 一段时间内只允许一个进程使用 | 打印机、磁带机 |
| 共享设备 | 多个进程可同时(交替)访问 | 磁盘 |
| 虚拟设备 | 通过 SPOOLing 将独占设备改造为共享设备 | 虚拟打印机 |
I/O 设备的组成
一个 I/O 设备由机械部件和电子部件组成:
设备控制器(I/O 控制器)
设备控制器是 CPU 与 I/O 设备之间的中介,由以下部分组成:
| 组件 | 功能 |
|---|---|
| 数据寄存器 | 暂存要传输的数据 |
| 状态寄存器 | 记录设备当前状态(忙/闲/出错) |
| 控制寄存器 | 接收 CPU 发来的控制命令 |
| I/O 逻辑 | 对 CPU 的命令进行译码,与设备通信 |
I/O 端口与编址
CPU 通过I/O 端口地址访问设备控制器中的寄存器:
| 编址方式 | 说明 |
|---|---|
| 独立编址(I/O 映射) | I/O 端口有独立的地址空间,使用专用 I/O 指令(in/out) |
| 统一编址(内存映射) | I/O 端口被映射到内存地址空间,使用普通访存指令 |
| 比较 | 独立编址 | 统一编址 |
|---|---|---|
| 指令 | 专用 I/O 指令 | 普通访存指令 |
| 地址空间 | 独立 | 占用内存地址空间 |
| 优点 | 不占内存地址 | 编程灵活,无需专用指令 |
I/O 通道
通道是专门用于 I/O 操作的处理器,可以独立于 CPU 执行 I/O 操作。通道就像公司里的行政助理——老板(CPU)只需一句"把这批文件寄出去",助理自己跑完整个流程,完事儿再汇报。
| 类型 | 特点 |
|---|---|
| 字节多路通道 | 以字节为单位轮流为多个慢速设备服务 |
| 数据选择通道 | 一次只服务一个高速设备,传完后再服务下一个 |
| 数据多路通道 | 结合以上两种,以数据块为单位轮流服务 |
考研高频考点
- 🔥🔥 块设备 vs 字符设备的区别
- 🔥🔥 设备控制器的组成(数据/状态/控制寄存器 + I/O 逻辑)
- 🔥 独立编址 vs 统一编址
- 🔥 独占设备 vs 共享设备
设备分好类、控制器搭好桥,下一个问题就是:CPU 怎样和这些设备交换数据?下一篇来看四种 I/O 控制方式的演进。