操作系统笔记12
IO设备
思维导图
什么是I/O设备
设备分类
按使用特性分类
按传输速率来分类
按照信息交换分类
块设备是可寻址的,传输速度快
字符设备不可寻址的,传输速度慢,常采用中断驱动方式
I/O控制器
思维导图
I/O控制器
电子部件
I/O控制器的组成
值得注意的小细节:
- 一个I/O控制器可能会对应多个设备:
- 数据寄存器、控制寄存器、状态寄存器可能有多个(如:每个控制/状态寄存器对应一个具体的设备),且这些寄存器都要有相应的地址,才能方便CPU操作。有的计算机会让这些寄存器占用内存地址的一部分,称为内存映像I/O:另一些计算机则采用I/O专用地址,即寄存器独立编址。
内存影响I/0与寄存器独立编址
I/O控制方式
思维导图
程序直接控制方式
轮询
完成一次读写操作的流程
中断驱动方式
缺点:
每次只传送一个字
希望把I/O设备直接送向内存
DMA方式
直接存储器存取,用于块设备的I/O控制
DMA控制器
在计算机组成原理这一块DR往往是MAR
通道控制方式
通道:一种硬件,可以理解为是 “弱鸡版CPU”
I/O软件程序接口
思维导图
用户层软件
设备独立性软件
设备无关性软件
与设备硬件特性无关的功能几乎都在本层实现
向上层提供统一的调用接口(如 read/Write 系统调用)
设备的保护:原理类似于文件保护,设备看作特殊的文件,不同的用户对各个文件的访问权限不一样,对设备的访问权限也不一样
擦错处理:设备独立性软件需要对一些设备的错误进行处理
设备的分配与回收
数据缓冲区管理:可以通过缓冲技术屏蔽设备之间数据交换单位大小和传输速度的差异
建立逻辑设备名到物理设备名的映射关系:根据设备类型选择调用相应的驱动程序
用户所看到的设备名是逻辑设备名
操作系统看到的是物理设备名
用户或用户层软件发出I/O操作相关系统调用的系统调用时,需要指明此次要操作的I/O设备的逻辑设备名(eg:去学校打印店打印时,需要选择打印机1/打印机2/打印机3,其实这些都是逻辑设备名)
设备独立性软件需要通过”逻辑设备表(LUT,Logical UnitTable)”来确定逻辑设备对应的物理设备,并找到该设备对应的设备驱动程序
为什么不同设备需要不同的驱动程序?
佳能打印机设备内部的电子器件:对于状态寄存器来说0代表空闲,1代表忙碌
但是对于其他品牌的打印机来说,有可能0代表忙碌, 1代表空闲
所以由于内部的电子部件不同,需要不同的驱动程序来实现操作系统对设备的控制
设备驱动程序
中断处理程序
中断处理程序也会和硬件直接打交道,但是再往上就不会和硬件打交道了
总结回顾
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Ethereal
评论