# 6.1 I/O管理概述 ## 一、I/O设备的概念 ### 1.1 什么是I/O设备 **I/O设备**:用于计算机与外部世界进行信息交换的设备。 **分类**: - **输入设备**:键盘、鼠标、扫描仪等 - **输出设备**:显示器、打印机等 - **输入输出设备**:磁盘、网卡等 ### 1.2 I/O设备的特点 - **种类繁多**:不同类型的设备 - **速度差异大**:从毫秒到纳秒 - **控制方式不同**:不同的控制命令 - **数据传输单位不同**:字节、块等 --- ## 二、I/O设备的分类 ### 2.1 按传输速率分类 **低速设备**: - 键盘、鼠标 - 传输速率:每秒几个字节到几百字节 **中速设备**: - 打印机 - 传输速率:每秒几千字节到几万字节 **高速设备**: - 磁盘、网卡 - 传输速率:每秒几十万字节到几兆字节 ### 2.2 按信息交换单位分类 **块设备**: - 以数据块为单位传输 - 如:磁盘 - 传输速率高,可寻址 **字符设备**: - 以字符为单位传输 - 如:键盘、打印机 - 传输速率低,不可寻址 ### 2.3 按设备的共享属性分类 **独占设备**: - 一段时间内只能被一个进程使用 - 如:打印机 **共享设备**: - 可以被多个进程同时使用 - 如:磁盘 **虚拟设备**: - 通过虚拟技术将独占设备变为共享设备 - 如:SPOOLing技术 --- ## 三、I/O管理的目标 ### 3.1 提高I/O效率 - 减少CPU干预 - 提高设备利用率 - 减少I/O等待时间 ### 3.2 方便用户使用 - 提供统一的接口 - 隐藏设备细节 - 提供设备独立性 ### 3.3 提高系统可靠性 - 设备分配安全 - 错误处理 - 设备保护 --- ## 四、I/O管理的功能 ### 4.1 设备分配 - 根据用户请求分配设备 - 考虑设备类型、状态、安全性 ### 4.2 设备映射 - 逻辑设备到物理设备的映射 - 实现设备独立性 ### 4.3 设备驱动 - 控制设备工作 - 处理设备中断 ### 4.4 中断处理 - 响应设备中断 - 处理I/O完成 ### 4.5 缓冲区管理 - 管理I/O缓冲区 - 提高I/O效率 --- ## 五、I/O系统的层次结构 ### 5.1 层次划分 ``` +------------------+ | 用户层I/O软件 | 用户程序 +------------------+ | 设备独立性软件 | 系统调用处理 +------------------+ | 设备驱动程序 | 设备控制 +------------------+ | 中断处理程序 | 中断处理 +------------------+ | 硬件 | I/O设备 +------------------+ ``` ### 5.2 各层功能 **用户层I/O软件**: - 用户程序中的I/O操作 - 库函数 **设备独立性软件**: - 设备名到设备驱动程序的映射 - 设备保护 - 缓冲管理 - 差错控制 **设备驱动程序**: - 与设备控制器通信 - 发出I/O命令 - 检查设备状态 **中断处理程序**: - 处理设备中断 - 唤醒等待进程 --- ## 六、考研重点 1. **I/O设备的分类**: - 按传输速率:低速、中速、高速 - 按信息交换单位:块设备、字符设备 - 按共享属性:独占、共享、虚拟 2. **I/O管理的目标**:提高效率、方便使用、提高可靠性 3. **I/O管理的功能**:设备分配、设备映射、设备驱动、中断处理、缓冲区管理 4. **I/O系统的层次结构**:各层的功能 --- *下一节:6.2 I/O控制方式*