5.1.1 io设备按信息交换的单位分类
块设备
特点:传输速率高,可寻址,可以随机的读写任意一块
举例:磁盘
字符设备
特点:传输速率慢,不可寻址
举例:鼠标,键盘,数据传输的基本单位是字符
5.1.2 I/O控制器(
就是实现CPU和IO设备间的控制的,CPU控制IO控制器,IO控制器控制IO设备
IO控制器的功能:(IO设备中包含的寄存器)
接收和识别CPU发出的命令(控制寄存器)
向CPU报告设备的状态(状态寄存器)
数据交换(数据寄存器)
地址识别
IO控制器的组成
三部分:
CPU与控制器之间的接口
I/O逻辑
控制器与设备之间的接口
注意:
一个IO控制器可能对应多个设备
数据寄存器,状态寄存器,控制寄存器有多个,这些寄存器有响应的地址,方便CPU操作
地址的编码方式分为两种,一种是内存映像IO,另一部分计算机采用IO专用编址,即寄存器独立编址(与计组中的IO统一编址和独立编址一样)
5.1.3 I/O控制方式
- 一次读/写的流程
- CPU干预的频率
- 数据传送的单位
- DMA方式
- 通道控制方式
程序直接控制方式
1.CPU通过控制线发送控制命令,IO设备随后开始准备数据,在IO设备准备准备数据的时候,CPU会不断轮询检查IO控制器的状态,如果IO设备准备就绪,IO控制器就会将状态寄存器置为0(已就绪),并将数据放在数据寄存器中,此时CPU发现了数据寄存器的数据,再把数据放到内存中
2.CPU干预频率频繁
3.数据传送的单位:字
4.数据的流向:(不懂)
读:IO设备-CPU-内存
写:内存-CPU-IO设备
5.优缺点:
优点: 简单高效
缺点:CPU一直在轮询,处于忙等状态,CPU利用率低
中断驱动方式
1.所有过程和上面一种方式相同,唯一不同点在于CPU不用轮询检查IO控制器的状态,在IO设备准备数据时,CPU可以先进行其他的进程,IO数据准备好后,会向CPU发送一个中断信号,CPU接收到以后就可以开始接收IO的数据了
2.I/O开始前后需要CPU介入,等待过程可切到换别的进程
3.数据传输的单位:字
4.数据流向:与前者相同
5.优点:可以让CPU和IO并行工作
DMA方式(Direct Memory Access)
直接存储器存取
与前两者区别:
数据传送单位:块
仅在传送1个或多个数据块的开始或结束时,需要CPU的干预
通道控制方式
通道可以识别一些简单的通道指令,是弱鸡版的CPU
通道程序=任务清单
一个通道可以控制多个IO控制器,一个通道控制器可以控制多个IO设备
几种IO控制方式的对比
5.1.4 软件层次结构
重点在IO调度,设备保护,假脱机技术(SPOOLing),设备的分配与回收,缓冲区管理(缓冲与高速缓存)
5.1.5 IO核心子系统
IO调度:用某种算法来确定一个好的顺序来处理各种IO请求
设备保护:把设备看成一种特殊的文件,设备保护就是文件保护了,参考第四章文件保护的内容
IO核心子系统的组成
5.1.6 假脱机技术
由于CPU处理数据的速度很快,但是输入数据的速度很慢,从而引入了脱机技术
脱机的意思就是输入阶段将数据输入到一个外围控制机上,就会使得CPU处理数据的总时间加快。
假脱机就是用软件的方式来模拟脱机技术
示例:共享打印机
5.1.7 设备的分配与回收
设备分配时应考虑的因素
设备的固有属性:独占设备,共享设备,虚拟设备
设备分配算法:先来先服务算法。。。
设备分配的安全性:不安全分配有可能出现死锁现象:
静态分配和动态分配
设备分配管理的数据结构
类似于树一样的关系:
设备控制表(DCT):(Device Control Table)
Controller control table
Channel control table
System device table
注意这几种表都有一个重要的点,就是指针,状态/等待队列的指针
设备分配的步骤
注意这里的缺点和改进方法
5.1.8 缓冲区管理
缓冲区的作用
下面是几种缓冲区管理的策略:
单缓冲(与双缓冲联合在一起考处理一块数据要用的时间)
常考题型: