6.1 I/O系统的功能、模型和接口
6.1.1 I/O系统的基本功能
- 隐藏物理设备的细节
- 与设备的无关性
- 提高处理机和I/O设备的利用率
- 对I/O设备进行控制
- 确保对设备的正确共享
- 错误处理
对I/O设备的四种控制方式:
(1)采用轮询的可编程I/O方式
(2)采用可中断的可编程I/O方式
(3)直接存储器访问方式
(4)I/O通道方式
6.1.2 I/O系统的层次结构和模型
- I/O软件的层次结构
- I/O系统中各种模块之间的层次视图
6.1.3 I/O系统的接口
- 块设备接口
- 流设备接口
- 网络通信接口
6.2 I/O设备和设备控制流
I/O设备
- I/O设备类型
- 设备与控制器之间的接口
1.按使用特性分类:
第一类:是存储设备,也称外存或辅存,是用以存储信息的主要设备。
第二类:是I/O设备它又可分为,输入设备、输出设备和交互式设备
2.按传输速率分类:
第一类:低速设备
第二类:中速设备
第三类:高速设备
6.2.2 设备控制器
- 设备控制器的基本功能
- 设备控制器的组成
基本功能:
(1)接收和识别命令
(2)数据交换
(3)标识和报告设备的状态
(4)地址识别
(5)数据缓冲区
(6)差错控制
组成:
(1)设备控制器与处理机的接口
(2)设备控制器与设备的接口
(3)I/O逻辑
6.2.3 内存映像I/O
- 利用待定的I/O指令
- 内存映像I/O
6.2.4 I/O通道
- I/O通道设备的引入
- 通道类型
- “瓶颈” 问题
通道类型:
(1)字节多路通道 ---- 这是一种按字节交叉方式工作的通道
(2)数组选择通道 ---- 可连接多台高速设备。
(3)数组多路通道 ---- 每次只允许一个设备传输数据。
6.3 中断机构和中断处理程序
6.3.1 中断简介
- 中断和陷入
- 中断向量表和中断优先级
- 对多中断源的处理方式
1. 中断: 指CPU对I/O设备发来的中断信号的一种响应。
2. 陷入:由CPU内部事件所引起的中断。
3. 中断和陷入的主要区别:是信号源来自于CPU外部还来源于CPU内部。
6.3.2 中断处理程序
中断处理程序的处理过程可分为以下几个步骤:
(1)测定是否有未响应的中断信号
(2)保护被中断进程的CPU环境
(3)转入相应的设备处理程序
(4)中断处理
(5)回复CPU的现场并退出中断。
此刻是否返回到被中断的进程,取决于两个因素:
①本中断是否用了屏蔽(禁止)中断方式,若是,就会返回被中断的进程
②采用的是中断嵌套方式,若果没有优先级更高的中断请求I/O,在中断完成后,
仍会返回被中断的过程,反之,系统将处理优先级更高的中断请求。
6.4 设备驱动系统
6.4.1 设备驱动程序的概述
- 设备驱动程序的功能
- 设备驱动程序的特点
- 设备处理方式
6.4.2 设备驱动程序的处理过程
过程:
(1)将抽象要求转换为具体要求
(2)对服务请求进行校验
(3)检查设备的状态
(4)传送必要的参数
(5)启动I/O设备
6.4.3 对I/O设备的控制方式
- 使用轮询的可编程I/O方式
- 使用中断的可编程I/O方式
- 直接存储器访问方式
- I/O通道控制方式
I/O通道的控制方式:
1> I/O通道的控制方式的引入
2> 通道程序
(1)操作码,规定了指令执行的操作
(2)内存地址,标明字符送入内存(读操作)和内存取出(写操作)时的内存首址。
(3)计数,表示本条指令所要读(或写)数据的字节数
(4)通道程序结束位P,用于表示通道程序是否结束。
(5)记录结束标志R。
6.5 与设备无关的I/O软件
6.5.1 与设备无关软件的基本概念
- 与物理设备名使用设备
- 引入了逻辑设备名
- 逻辑设备名称到物理设备名称的转换
6.5.2 与设备无关的软件
- 设备驱动程序的统一接口
- 缓冲管理
- 差错控制
- 对独立设备的分配与回收
- 独立于设备的逻辑数据块
6.5.3 设备分配
- 设备分配中的数据结构
- 设备分配时应考虑的因素
- 独占设备的分配程序
因素:
(1)设备的固有属性:
①独占设备的分配策略
②共享设备的分配策略
③虚拟设备的分配策略
(2)设备分配算法:
①先来先服务
②优先级高者优先
(3)设备分配中的安全性:
①安全分配方式
②不安全分配方式
独占设备的分配程序;
(1)基本设备的分配程序:
①分配设备
②分配控制器
③分配通道
(2)设备分配程序的改进
6.5.4 逻辑设备名到物理设备名的yi映射实现
- 逻辑设备表
- 逻辑设备表的设置问题
6.6 用户层的I/O软件
6.6.1 系统调用与库函数
- 系统调用
- 库函数
6.6.2 假脱机系统
- 假脱机技术
- SPOOLing的组成
- SPOOLing系统的特点
- 假脱机打印机系统
- 守护进程
6.7 缓冲区管理
6.7.1 缓冲的引入
(1)缓存CPU与I/O设备间速度不匹配的矛盾。
(2)减少对CPU的中断频率,放宽对CPU中断响应时间的限制。
(3)解决数据粒度不匹配问题。
(4)提高CPU和I/O设备之间的并行性。
6.7.2 单缓存区和双缓存区
- 单缓存区
- 双缓存区
6.7.3 环形缓冲区
- 环形缓冲区的组成
- 环形缓冲区的使用
- 进程之间的同步问题
6.7.4 缓冲池
- 缓冲池的组成
- Getbuf过程和Putbuf过程
- 缓冲区的工作方式
- 缓冲池的组成:
(1)空白缓冲队列emq。
(2)输入缓冲队列inq。
(3)输出队列outq。
2.缓冲区的工作方式:
(1)收容输入
(2)提取输入
(3)收容输出
(4)提取输出
6.8 磁盘存储器的性能和调度
6.8.1 磁盘性能
- 数据的组织和格式
- 磁盘类型
- 磁盘访问时间
6.8.2 早期的磁盘调度算法
- 先来先服务(FCFS)
- 最短寻道时间优先(SSTF)
6.8.3 基于扫描的磁盘调度算法
- 扫描(SCAN)算法
- 循环扫描(CSCAN)算法
- NStepSCAN和FSCAN算法