一、概念
分类
1、按交互对象分类
- 人机交互设备
- 与CPU等交互的设备
- 计算机间通信设备
2、按交互方向分类
- 输入设备
- 输出设备
- 双向设备
3、按外设特性分类
- 使用特征
- 数据传输率
- 信息组织特征
设备管理的功能
- 设备分配
- 设备映射
- 设备驱动
设备分配
是设备管理的基本任务
设备分配程度按照一定的策略,为申请设备的进程分配设备,记录设备的使用情况
设备映射
物理设备(实际设备) 逻辑设备(软件使用的设备)
功能:
- 设备管理模块将逻辑设备映射到物理设备的功能
- 从应用软件的角度,逻辑设备是一类物理设备的抽象
- 从设备管理程序的角度来看,物理设备是逻辑设备的实例
设备独立性
- 物理设备对用户透明,用户使用统一规范的方式使用设备
- 用户编程时使用设备的逻辑名,有系统实现逻辑设备到物理设备的转换
设备驱动
- 对物理设备控制
- 接收应用的服务请求,转换成具体的I/O指令,控制设备完成相关操作
- 向用户提供统一接口
特点
- 设备驱动程序与硬件密切相关
- 每类设备都要配置特定的驱动程序
- 驱动程序一般有设备厂商根据操作系统要求编写
- 操作系统仅对设备驱动的接口提出要求
二、Spooling系统
设备分配方法
- 独占设备分配
- 共享设备分配
- 虚拟分配
独占设备使用过程:申请——使用——释放
- 进程申请设备
- 系统分配设备
- 进程发送使用命令
- 系统将转到设备驱动模块完成一次I/O传输
- 进程释放设备
- 系统回收设备
从进程申请成功,直到释放完之前,独占设备
共享型设备的分配
- 进程使用共享型设备不需要申请,当然也就不存在占用或释放设备的问题
- 进程使用共享型设备之前,会隐含的使用申请命令,使用完毕后隐含使用释放命令,目的保证排他性,保证操作的正常进行
- 使用共享型设备的过程中,进程完全有可能进入阻塞等待状态
虚拟分配
虚拟技术
在一类物理设备上模拟另一类物理设备的技术
- 记住辅存部分区域模拟独占设备,将独占设备转化为共享设备
虚拟设备
- 用来模拟独占设备的部分辅存称为虚拟设备,虚拟独占设备
- 输入井:模拟输入设备的辅存区域
- 输出井:模拟输出设备的辅存区域
虚拟分配
当进程需要与独占设备交换信息时,就采用虚拟技术将与该独占设备所对应的虚拟设备(部分辅存)分配给它。
Spooling系统是虚拟技术和虚拟分配的实现
Spooling结构
输入井和输出井
磁盘上开辟两个存储区域
- 输入井模拟脱机输入时的磁盘
- 输出井模拟脱机输出时的磁盘
输入缓冲区和输出缓冲区
内存中开辟的存储区域
- 输入缓冲区:暂存输入数据,以后再传送到输入井
- 输出缓冲区:暂存输出数据,以后再传送到输出设备
原理小结
任务执行前:预先将程序和数据输入到输入井中
任务运行时:使用数据时,从输入井中取出
任务运行时:输出数据时,把数据写入输出井
任务运行完:外设空闲时输出全部数据和信息
特点
提高了I/O速度
将独占设备改造为“共享”设备(实现了虚拟设备功能)