设备管理 - 软考备战(十九)
操作系统(四)

参考资料:
计算机操作系统学习笔记(四):设备管理 — I/O 管理 - 知乎
设备管理(设备管理概念、设备驱动程序)-腾讯云开发者社区-腾讯云
操作系统(15)-----I/O设备管理(万字总结~)(1)-阿里云开发者社区
目录
3.4 设备管理
3.4.1 设备管理概述
1. I/O设备的分类
按传输速率分类

低速设备:键盘、鼠标。
中速设备:打印机。
高速设备:磁盘、磁带。
按信息交换单位分类
块设备:以数据块为单位传输,可寻址,如磁盘(传输速率高,随机访问)。
字符设备:以字符为单位传输,不可寻址,如键盘、打印机(传输速率低,常采用中断方式)。
按共享属性分类
独占设备:一段时间内只允许一个进程访问(如打印机)。
共享设备:一段时间内允许多个进程交替访问(如磁盘)。
虚拟设备:通过SPOOLing技术将独占设备变为逻辑上的共享设备。
2. I/O软件层次结构

用户层软件
产生I/O请求,解析用户命令(如C语言的printf库函数)。
设备独立性软件(逻辑I/O)
实现“设备独立性”,将逻辑设备名映射为物理设备名;
进行差错控制;提供统一的系统调用接口。
设备驱动程序
直接与硬件相关,将上层命令转换为设备控制器能理解的具体操作(如将“读扇区”转为寄存器读写)。


中断处理程序

最底层软件,当I/O完成时被唤醒,进行善后处理。
3. I/O控制方式


程序直接控制方式(轮询)
CPU不断查询设备状态。

缺点:
CPU与设备串行工作,CPU利用率极低,“忙等”。
中断驱动方式


CPU发出命令后做其他事,I/O完成后发中断信号。

优点:
实现了CPU与I/O并行。
缺点:
数据传输单位小(字/字节),频繁中断消耗CPU时间。
DMA方式(直接存储器访问)


数据传输单位为数据块;
数据直接在内存与设备间传输,无需CPU干预。
仅在传输开始和结束时需要CPU干预。
通道方式
独立的I/O处理器,可执行通道程序。


一个通道可控制多台设备。
优点:
CPU负担最轻,并行性最高。
3.4.2 I/O核心子系统
1. 缓冲管理
目的
缓和CPU与I/O设备速度不匹配的矛盾;减少对CPU的中断频率;解决数据粒度不匹配问题。
单缓冲


设一个缓冲区,CPU处理数据时,设备只能等待。

处理时间约 T + C(T为设备输入时间,C为CPU处理时间)。
双缓冲

设两个缓冲区,交替使用。


若 T < C,处理时间约 C;
若 T > C,处理时间约 T。
循环缓冲
多个缓冲区链接成环,适用于输入/输出速度相差不大的情况。


缓冲池

公用缓冲区集合,由OS管理,既可输入也可输出,利用率最高。
2. 设备分配与回收
设备分配的数据结构
- DCT(设备控制表):记录设备状态(忙/闲)、等待队列指针。
- COCT(控制器控制表)。
- CHCT(通道控制表)。
- SDT(系统设备表):系统范围内的设备资源表。
设备分配策略
先来先服务。
优先级高者优先。
设备独立性
应用程序使用逻辑设备名请求设备,系统在运行时将其映射为物理设备名。
好处是提高了程序的适应性,不依赖于具体物理设备。
3.4.3 磁盘存储器管理
1. 磁盘结构
磁盘由多个盘片组成,每面有磁道,多个盘面对应磁道形成柱面。

扇区:磁盘物理块,最小的读写单位。

2. 磁盘访问时间


3. 磁盘调度算法
先来先服务 (FCFS)
按请求到达顺序服务。

公平,简单,但寻道距离长,效率低。
最短寻道时间优先 (SSTF)
选择距离当前磁头最近的请求。
性能优于FCFS,但可能导致“饥饿”现象(远端请求长时间得不到服务)。
扫描算法 (SCAN / 电梯算法)
磁头沿一个方向移动到底,途中服务所有请求,然后反向移动。
消除了饥饿,性能较好。
循环扫描算法 (CSCAN)
单向移动(如从外向内),到达边缘后直接跳回起点(不服务),重新开始扫描。
消除了SCAN算法中边缘请求响应时间变化大的问题,响应时间更均匀。
3.4.4 虚拟设备与SPOOLing技术
1. SPOOLing技术原理

定义
在磁盘上开辟“输入井”和“输出井”,利用外围处理机(实际上是预输入程序和缓输出程序)实现I/O。
组成
输入井/输出井:磁盘上的缓冲区,模拟物理设备。
输入缓冲区/输出缓冲区:内存缓冲区。

预输入程序/缓输出程序:负责将数据从设备读到井,或从井写到设备。
2. 实现设备虚拟化
工作流程

核心优势
将独占设备(如打印机)改造为共享设备。
实现了I/O操作的“脱机”处理,提高了I/O速度。
更多推荐

所有评论(0)