设备管理
- I/O设备:即可以将数据输入到计算机或是可以接受计算机输出数据的外部设备,属于计算机中的硬件部件。独占式设备、共享设备
- 按使用特性分类:
- 人机交互类外部设备(数据传输速度慢)
- 存储设备(数据传输速度快)
- 网络通信设备(中间)
- 按信息交换的单位分类:
- 块设备(快、可寻址)
- 字符设备(慢、不可寻址)
- I/O设备由机械部件(看得见摸得着)和电子部件组成(I/O控制器、设备控制器,通常为插入主板扩充槽的印刷电路板)
- I/O控制器功能:
- 接受和识别CPU发出的命令
- 向CPU报告设备的状态
- 数据交换
- 地址识别
- I/O控制器组成:
- 寄存器编址方式:
- I/O控制方式:
- 程序直接控制:轮询、CPU干预频率很频繁、字
- 中断驱动方式:CPU在指令周期的末尾检查中断、等待I/O完成的过程中CPU可以切换到别的进程进行、字
- DMA(直接存储器存储)方式:数据传送单位为块
- 通道控制方式:通道可以理解为“弱鸡版的CPU”、CPU干预频率极低、一组块
- I/O软件层次结构:
-
I/O请求↓
-
I/O应答↑ -
库函数提供了用户与用户层软件的接口,系统调用提供了用户从软件与设备独立性软件等的接口。操作系统的内核部分:即I/O系统,或称为I/O核心子系统。
在用户层软件中:实现假脱机技术(SPOOLing技术)
- I/O核心子系统:
- I/O调度:用某种算法确定一个好的顺序来处理各个I/O请求(如磁盘调度)
- 设备保护:在UNIX系统中设备被看作成一种特殊的文件
- 假脱机技术(SPOOLing技术):所谓脱机——脱离主机的控制进行的输入输出操作。
- 设备的分配与回收:固有属性分类(独占式设备、共享设备、虚拟设备)、从进程运行的安全性上考虑,设备分配有两种方式:安全分配方式(阻塞、唤醒)&不安全分配方式。
- 静态分配:进程运行前为其分配所需资源,运行结束后归还资源(破环了请求保持条件,不会发生死锁)
- 动态分配:设备运行过程中动态申请资源
- 数据结构:
- 设备控制表DCT
- 控制器控制表COCT
- 通道控制表CHCT
- 系统设备表SDT(记录了系统中全部设备的情况)
- 设备分配步骤:①根据进程请求的物理设备名(改进后使用逻辑设备名)查找SDT、②根据SDT找到DCT(忙碌与否)(改进后在逻辑设备表LUT中新增一个表项)、③根据DCT找到COCT(忙碌与否)、④根据COCT找到CHCT(忙碌与否)。
- 缓冲区管理:
- 所谓缓冲区是一个存储区域、寄存器、容量小
- 作用:
- 缓和CPU与IO设备之间的矛盾
- 减少CPU中断频率
- 解决数据粒度不匹配的问题
- 单缓冲
- 双缓冲(通信时可实现双向传输)
- 循环缓冲区(循环队列)
- 缓冲池