设备管理¶
设备概述¶

- 设备分类
- 按照数据传输方式分类
- 字符设备:数据以字符为单位传输,如键盘、鼠标、打印机等。
- 块设备:数据以块为单位传输,如硬盘、光盘等。
- 流设备:数据以连续流的方式传输,如网络接口、串口等。
- 按照访问方式分类
- 顺序访问设备:只能按顺序访问数据,如磁带。
- 随机访问设备:可以随机访问数据,如硬盘。
- 按照功能分类
- 输入设备:如键盘、鼠标、扫描仪等。
- 输出设备:如显示器、打印机等。
- 输入输出设备:如硬盘、网络接口等。
- 按存在形式上(OS 角度):
- 物理设备
- 逻辑设备
- 按资源属性(OS 管理角度):
- 共享设备
- 独占设备
- 虚拟设备
- 按照数据传输方式分类
- 设备管理层次关系
- 底层通信(中断处理):
- 实现软件和硬件设备的通信。
- 设备驱动:
- 功能:接受来自上层的抽象操作请求,并负责操作的具体实施。
- 主要组成:与设备打交道的软件、共享支持、缓冲区支持等。
- 对用户层的 I/O 接口:
- 每个 I/O 调用接口对应具体的设备抽象操作。
- 使用设备的用户级程序:
- 通过调用所提供的接口来实现对设备的使用或控制。
- 底层通信(中断处理):
中断响应¶
- 设备向中断控制器发送中断信号
- 中断控制器比较各个中断的优先级。如果有未被屏蔽的中断,中断控制器向 CPU 发送中断信号。
- CPU 现场保存后,通过询问中断控制器,确定中断源(中断号)。
- 通过中断号,找到对应的中断处理程序。
- 中断处理结束后,
- 原运行在核心态:恢复现场,转向被中断的任务继续执行。
- 原运行在用户态:检查调度标志、信号设置标志(runrun)。如果被设置,进行相应处理。否则恢复现场,继续执行。
设备的四类资源¶
- I/O 地址
- 需要把单个设备的 I/O 编址映射到系统全局编址。
- I/O 中断请求
- 中断控制器支持的中断数量有限,每个进行了编号。设备接入系统后,需要分配中断号。
- I/O 通道
- I/O 通道是一种 硬件 设施,带有专用处理器的,可以独立地完成系统处理器交付的 I/O 操作任务
- 通道具有自己专门的指令集,即通道指令。通道执行来自处理器的通道程序,完成后只需向系统处理器发出中断,请求结束。
- DMA 数据传输通道
- 内存和 I/O 设备之间的自动化数据通路,在主存和 I/O 设备之间成块传送数据过程中,不需要 CPU 干预,CPU 资源的利用率再次得到提高 。
- DMA 不仅设有中断机构,而且,还增加了 DMA 传输控制机构(类似于 CPU)。
- I/O 缓冲区
- 缓存区需求:
- 提高 CPU 和外设的并行度
- 缓解外设速度慢的瓶颈
- 缓冲区分类:
- 硬件缓冲:有些设备中会包含专门的硬件寄存器等用于缓冲。
- 软件缓冲:直接在主存中。
- 单缓冲:一个缓冲,外设和 CPU 互斥进行操作。
- 双缓冲:设置两个缓冲区,交替使用。
- 循环缓冲:类似于循环队列,依次使用。
- 缓冲池:系统维护一组大小相同的缓冲区,进程和设备按需要申请,使用完后重新归入缓冲池中。
- 缓存区需求:
设备分配¶
-
设备分配表
-
设备控制表(device control table,DCT)
- 一张 DCT 对应一个设备
- 有指向 COCT 的指针

-
控制器控制表(controller control table,COCT)
- 一张 COCT 对应一个控制器
- 有指向 CHCT 的指针
- 通道控制表(channel control table,CHCT)
- 一张 CHCT 对应一个通道
- 有指向 COCT 的指针
- 系统设备表(system device table,SDT)
- 一张 SDT 对应一个系统
- 有指向 DCT 的指针

-
-
设备分配方式
- 静态分配
- 用于对独占设备的分配,在用户作业开始执行前由系统一次性分配该作业所要求的全部设备。
- 静态分配方式不会出现死锁,但设备的利用率低。因此,静态分配方式不符合分配的总原则。
- 动态分配
- 在进程执行过程中根据执行需要进行。
- 动态分配方式有利于提高设备的利用率,但如果分配算法使用不当,则有可能造成进程死锁。
- 静态分配
上层统一接口¶
- 统一标识,统一操作
- 操作:抽象为文件名-文件操作
- 主设备号:可以找到相应的设备驱动程序
- 次设备号:指定具体的物理设备
设备驱动程序¶
- 设备驱动程序是操作系统内核的一部分,负责与硬件设备进行通信。
- 设备驱动程序的主要功能包括:
- 初始化设备:在设备启动时进行初始化设置。
- 处理 I/O 请求:接收来自上层的 I/O 请求,并将其转换为设备可以理解的格式。
- 处理中断:响应设备发出的中断信号,处理设备状态变化。
- 错误处理:处理设备操作中的错误情况。