《操作系统》——输入输出管理
一、I/O设备的概念和分类
(一)什么是I/O设备
数据的输入和输出设备,与计算机进行数据的交换
读操作:从外部读入数据
写操作:向外部写出数据
(二)按使用特性分类
(三)按传输速率分类
(四)按信息交换的单位分类
二、I/O控制器(设备控制器)
cpu控制i/o控制器(电子部件),i/o控制器控制设备的机械部件
接口中的各个寄存器所连的总线是数据总线,传递的是I/O端口地址
三、I/O控制方式(用什么样的方式控制I/O设备的数据读写)
演变过程:逐渐解放CPU
- 完成一次读写操作的流程
- CPU干预的频率
- 数据传送的单位
- 数据的流向
- 主要缺点和主要优点
(一)程序直接控制方式(轮询)
(二)中断驱动方式(中断)
(三)DMA方式
也是一种I/O控制器
内存和外设可以直接通信
DMA控制器是特殊的I/O控制器
虽然是一整块传输,但每次传数据也是一个字一个字的传,存放在DR中,写入内存
(四)通道控制方式(弱鸡版CPU)
内存中的通道程序(执行清单),CPU告诉通道,通道程序再内存的位置,让通道去执行里面的任务
完成后对CPU发出中断信号
一个通道可以控制多个I/O控制器,一个I/O控制器可以管理多个I/O设备,(通道比I/O控制器高一个级别,注意与DMA控制器的区别)
四、I/O软件层次结构
用户层软件(I/O提供的服务)
设备独立性软件(内核部分,I/O核心子系统)
不同的设备哦需要不同的设备驱动程序
设备驱动程序(内核部分,I/O核心子系统)(可接触硬件)
中断处理程序(内核部分,I/O核心子系统)(可接触硬件)
I/O结束后发出中断请求,中断处理程序开始处理,中断处理程序也会和硬件直接打交道
硬件(机械部件和电子部件)
问:一个I/O请求的处理次序?每层的功能?
五、I/O核心子系统(中间三层)
- 设备独立性软件
- 设备驱动程序
- 中断处理程序
实现的功能:
- I/O调度
- 设备保护
- 假脱机技术
- 设备分配与回收、缓冲区管理
功能对应的层次:
(一)I/O调度
例如磁盘调度的算法,把这些算法应用到所有I/O请求当中
(二)设备保护
设备看作特殊的文件
设置访问权限
(三)假脱机技术SPOOLing
“脱机:脱离主机的控制进行的输入输出操作
- 手动:手动录入纸带
- 脱机: 输入设备——外围控制机——磁带——主机(CPU/内存)——磁带——外围控制机——输出设备
- 假脱机:输入设备——输入进程(输入缓冲区 内存)——输入井(磁盘)——主机——输出井——输出进程(输出缓冲区)——输出设备
用假脱机技术实现设备共享
每次申请I/O设备时,都会在输出井中分配一个存储区,相当于分配了一个逻辑设备,让用户进程觉得自己在独占设备
(四)设备的分配与回收
1、设备分配考虑的因素
-
设备的固有属性
-
设备分配算法
-
设备分配中的安全性
2、设备分配方式
静态分配
动态分配
3、设备分配管理中的数据结构
设备控制表
控制器控制表
通道控制表
系统设备表SDT
设备分配的步骤
(五)缓冲区管理
1、什么是缓冲区?有什么作用?
2、单缓冲
每处理一块数据需要多久?
假定一个初始状态,下一次回到这个状态的时间就是处理一块数据的时间
3、双缓冲
4、循环缓冲
5、缓冲池
case1
case2
case3
case4