操作系统-设备管理
分类
按数据组织
- 块设备
- 字符设备
按设备功能
- 输入
- 输出
- 存储
- 网络
- 供电
- ...
从资源分配角度
- 独占
- 共享
- 虚拟
按数据传输率
- 低速
- 中速
- 高速
I/O 软件
向应用提供一个友好、清晰、且统一的接口
I/O 请求 | 层次 | I/O 应答 | I/O 功能 |
---|---|---|---|
V | 用户进程 | ^ | I/O 调用、格式化;Spooling |
V | 设备无关软件 | ^ | 命名、保护、阻塞、缓冲、分配 |
V | 设备驱动程序 | ^ | 置设备寄存器;检查状态 |
V | 中断处理程序 | ^ | I/O 结束唤醒驱动程序 |
V | 硬件 | ^ | 执行 I/O |
设备管理技术
通道技术
使数据传输独立于 CPU
DMA 技术
缓冲技术
- 目的
- 缓和 CPU 与 I/O 设备速度部匹配
- 减少 CPU 中断频率
- 提高 CPU 和 I/O 设备间的并行
- 实现
- 单缓冲
- 双缓冲
- 多缓冲
- 环形缓冲
Spooling 技术
- 捕获输入请求
- 预输入数据(提交状态)至输入井(磁盘)(后备状态)
- 作业时间片到
- 计算结果(执行状态)
- 结果入输出井(磁盘)(执行状态)
- 等待缓输出结果(完成状态)
- 输出结果
磁盘调度
采用一种适当的算法使各进程对磁盘的平均访问时间最小
驱动调度
- 先到先服务
- 🙂 实现简单
- 🙃 平均寻道时间较长
- 最短寻道时间优先
- 🙃 不能保证寻道时间最短
- 扫描算法
- 考虑当前最短目标磁道
- 考虑磁头运行方向
- 🙃 边界状态,访问刚扫过的磁道要等待磁头
- 单向扫描调度算法
- 🙂 规定磁头只做单向运动
旋转调度
磁头定位后,有多个进程等待访问该柱面,应如何决定访问次序