# 6.4 设备分配与回收 ## 一、设备分配中的数据结构 ### 1.1 设备控制表(DCT) **功能**: - 记录设备的状态和控制信息 - 每个设备一张DCT **内容**: - 设备类型 - 设备标识符 - 设备状态(忙/闲) - 指向控制器控制表的指针 - 重复执行次数或时间 - 设备队列的队首指针 ### 1.2 控制器控制表(COCT) **功能**: - 记录控制器的状态和控制信息 - 每个控制器一张COCT **内容**: - 控制器标识符 - 控制器状态(忙/闲) - 指向通道控制表的指针 - 控制器队列的队首指针 ### 1.3 通道控制表(CHCT) **功能**: - 记录通道的状态和控制信息 - 每个通道一张CHCT **内容**: - 通道标识符 - 通道状态(忙/闲) - 指向控制器控制表的指针 ### 1.4 系统设备表(SDT) **功能**: - 记录系统中所有设备的情况 - 整个系统一张SDT **内容**: - 设备类型 - 设备标识符 - 设备控制表DCT的指针 - 设备驱动程序入口地址 --- ## 二、设备分配策略 ### 2.1 设备分配原则 **静态分配**: - 作业开始前分配所有需要的设备 - 作业结束后释放 - 不会产生死锁 - 设备利用率低 **动态分配**: - 需要时分配,不需要时释放 - 设备利用率高 - 可能产生死锁 ### 2.2 设备分配算法 **先来先服务(FCFS)**: - 按请求顺序分配 - 公平但可能效率低 **优先级高者优先**: - 高优先级进程优先分配 - 可能导致低优先级进程饥饿 ### 2.3 设备分配的安全性 **安全分配方式**: - 进程请求设备时阻塞,直到I/O完成 - 进程不会同时占有设备和等待其他资源 - 不会死锁 - 但进程和设备的并行度低 **不安全分配方式**: - 进程请求设备后继续运行,可以再次请求 - 进程可以同时占有设备和等待其他资源 - 可能死锁 - 但并行度高 --- ## 三、设备分配过程 ### 3.1 独占设备的分配 **步骤**: 1. **分配设备**: - 根据物理设备名查找SDT - 找到DCT - 检查设备状态 - 如果空闲,分配;否则,将进程加入设备等待队列 2. **分配控制器**: - 从DCT找到COCT - 检查控制器状态 - 如果空闲,分配;否则,将进程加入控制器等待队列 3. **分配通道**: - 从COCT找到CHCT - 检查通道状态 - 如果空闲,分配;否则,将进程加入通道等待队列 4. **启动设备**: - 分配成功,启动设备进行I/O ### 3.2 设备回收 **步骤**: 1. **I/O完成**: - 设备发出中断 - 中断处理程序处理 2. **释放通道**: - 修改CHCT状态为空闲 - 唤醒通道等待队列中的进程 3. **释放控制器**: - 修改COCT状态为空闲 - 唤醒控制器等待队列中的进程 4. **释放设备**: - 修改DCT状态为空闲 - 唤醒设备等待队列中的进程 --- ## 四、SPOOLing技术 ### 4.1 什么是SPOOLing **SPOOLing(Simultaneous Peripheral Operations On-Line)**: - 假脱机技术 - 将独占设备改造为共享设备 - 实现虚拟设备 ### 4.2 SPOOLing的组成 **输入井和输出井**: - 磁盘上的两个存储区域 - 输入井:模拟脱机输入时的磁盘 - 输出井:模拟脱机输出时的磁盘 **输入缓冲区和输出缓冲区**: - 内存中的缓冲区 - 输入缓冲区:暂存输入数据 - 输出缓冲区:暂存输出数据 **输入进程和输出进程**: - 输入进程(SPi):将数据从输入设备传送到输入井 - 输出进程(SPo):将数据从输出井传送到输出设备 **井管理程序**: - 管理输入井和输出井 ### 4.3 SPOOLing的工作原理 **输入过程**: 1. 输入进程从输入设备读取数据到输入缓冲区 2. 输入进程将数据从输入缓冲区传送到输入井 3. 用户进程从输入井读取数据 **输出过程**: 1. 用户进程将数据写入输出井 2. 输出进程从输出井读取数据到输出缓冲区 3. 输出进程将数据从输出缓冲区传送到输出设备 ### 4.4 SPOOLing的特点 **优点**: - 将独占设备变为共享设备 - 提高设备利用率 - 实现虚拟设备 **应用**: - 打印机(打印队列) - 输入设备 --- ## 五、考研重点 1. **设备分配中的数据结构**:DCT、COCT、CHCT、SDT 2. **设备分配策略**:静态分配、动态分配 3. **设备分配过程**:独占设备的分配步骤 4. **设备回收过程** 5. **SPOOLing技术**:概念、组成、工作原理、特点 --- *下一节:6.5 缓冲区管理*