设备分配回收,缓冲区管理等内容讲解
树图思维导图提供 I/O核心子系统 在线思维导图免费制作,点击“编辑”按钮,可对 I/O核心子系统 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:195bd264731f8b0742e091d1506f38f1
I/O核心子系统思维导图模板大纲
设备独立性软件
设备驱动程序
中断处理程序
用户层软件
脱机技术
缓解设备与CPU的速度矛盾,实现预输入、缓输出
假脱机技术(SPOOLing)技术:用软件方式模拟脱机技术
见笔记图
不需要外围计算机,利用软件模拟实现外围控制机
空间换时间
设备与输入/输出井之间数据传送由系统控制
SPOOLing技术将独占设备“虚拟”成共享设备
虚拟设备:利用虚拟技术将独占设备->若干逻辑设备
应考虑因素
固有属性
独占、共享、虚拟
设备独立性
用户使用设备的透明性
分配算法
安全性
安全分配方式
为进程分配一个设备后阻塞进程(破坏请求——保持条件)
不安全分配方式
分配后不阻塞,只有I/O得不到请求才阻塞
设备分配管理的数据结构
一个通道->多个控制器
一个控制器->多个设备
设备控制表(DCT):
每个设备对应一张DCT,关键字段:标识/状态/指向COCT的指针/设备队列的队首指针
控制器控制表(COCT):
每个设备控制器对应一张COCT,关键字段:标识/状态/指向CHCT的指针/设备控制器队列的队首指针
通道控制表(CHCT):
每个通道对应一张COCT,关键字段:标识/状态/与通道连接的控制器表首址/通道队列的队首指针
系统分配表(SDT):
记录全部设备,每个设备对应一个表目,表目中有指向DCT的指针
设备分配步骤
物理设备名(查SDT)->SDT->COCT->CHCT
只有设备、控制器、通道三者分配成功才算成功,之后启动I/O数据传送
缺点:必须使用“物理设备名”,换名不运行,忙碌阻塞
改进
用户编程使用逻辑设备名,操作系统实现逻辑设备名->物理设备名(LUT)
整个系统只有一张LUT / 每个用户一张LUT
缓冲区
缓解CPU和I/O速度矛盾、减少CPU中断、解决数据粒度不匹配、提高CPU和I/O并行性
单缓冲
见笔记图
T:磁盘到缓冲区,M:缓冲区到工作区进程,C:工作区进程到CPU
处理一块数据平均耗时max(T,C) + M
双缓冲
处理一块数据平均耗时max(T,C+ M)
流水线经典问题(处理多个数据块用时)
单缓冲
块数 × 平均一块用时 + C
双缓冲
块数 × 平均一块用时 + C + M
循环缓冲
缓冲池
适合并发进程有效输入输出
在内存中
三个队列:空缓冲队列、输入队列、输出队列
四个工作缓冲区
提前读
延迟写
虚拟盘(缓冲区)
应用程序按逻辑设备名访问设备,再经驱动程序的处理来控制物理设备,若更换物理设备,只需更换驱动程序
设备连接到主机后,驱动程序负责初始化设备
树图思维导图提供 Linux 网络基础知识 在线思维导图免费制作,点击“编辑”按钮,可对 Linux 网络基础知识 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:199680f0e48eac8a1aeaadb90447d4f4
树图思维导图提供 业务查询耗时质量问题 在线思维导图免费制作,点击“编辑”按钮,可对 业务查询耗时质量问题 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:b79e68d755ecdc53367789daeec4d579