前言
以下内容源自计算机操作系统(第四版)
关于操作系统,
CSDN有很多的优秀博客。
在这里,
本文摘取其他博客内容,
并附上相关链接,
如有侵权,
联系删除,
仅供学习交流使用
推荐
第六章 输入输出系统
6.1 I/O系统的功能、模型和接口
6.1.1 I/O系统的基本功能
6.1.2 I/O软件的层次结构和模型
1. I/O软件的层次结构
通常把 I/O 软件组织成四个层次:
1)用户层 I/O 软件。实现与用户交互的接口,用户可直接调用该层所提供的、与 I/O 操作有关的库函数对设备进行操作。
2)设备独立性软件。用于实现用户程序与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间。
3)设备驱动程序。与硬件直接相关,用于具体实现系统对设备发出的操作指令,驱动 I/O 设备工作的驱动程序。
4)中断处理程序。CPU 先保护被中断进程的 CPU 环境,再转入相应的的中断处理程序进行处理,处理完毕后 CPU 再恢复被中断进程的现场,返回到被中断的进程。
2. I/O系统中各模块之间的层次视图
6.1.3 I/O系统接口
6.2 I/O设备和设备控制器
I/O设备一般是由执行I/O操作的机械部分和执行控制I/O的电子部件组成。通常将这两部分分开,执行I/O操作的机械部分就是一般的I/O设备,而执行控制I/O的电子部件则称为设备控制器或适配器,也常称为控制卡、接口卡或网卡。
6.2.1 I/O设备
1.I/O设备的类型
按传输速率: 低速(<KB/s),中速,高速(>100KB/s)
按信息交换单位分类
块设备: 读写的基本单位是数据块, 如磁盘
字符设备:读写的基本单位是字符, 如键盘
按共享属性分类
独占设备、共享设备、虚拟设备
2.设备与控制器之间的接口
6.2.2 设备控制器
1. 设备控制器的基本功能
地址识别: 识别I/O端口地址, 使I/O操作与设备对应。
接收和识别命令指挥设备执行
接收CPU通过I/O总线发来的命令和参数, 存储在控制器中相应的控制寄存器中, 并对它进行译码识别, 转换成适当的电信号, 通过控制器与设备的接口向设备发送, 指挥设备执行特定的操作。
接收和记录设备的状态
接收从设备发来的电信号, 进行转换和解释, 变为设备的状态信息, 将此结果记录在控制器的状态寄存器上, 供CPU了解。
数据交换、数据缓冲、差错控制
实现CPU↔控制器↔设备的数据交换, 从而实现了CPU到设备的数据传递和设备到CPU的数据传递。
2. 设备控制器的组成
6.2.3 内存映像I/O
6.2.4 I/O通道
1.通道设备的引入
为了建立独立的I/O操作
I/O传送独立、I/O组织管理独立
把CPU从繁杂的I/O任务中解脱出来
CPU只需向通道发出一条I/O指令。
减轻单总线的负担, 增加I/O通道
I/O通道的特点
I/O通道是一种特殊的处理机
具有执行I/O指令的能力
通过执行通道程序来控制I/O操作
指令类型单一, 没有自己的内存
2. 通道类型
字节多路通道
含有许多非分配型子通道(几十到几百), 每个子通道连结一台低速或中速字节设备, 子通道按时间片轮转方式共享主通道, 只要扫描一轮的速率足够快, 便不会丢失信息。
数组选择通道
可连结多台高速块设备, 但由于只含有一个分配型子通道, 当某台设备占用了该通道, 便由它独占, 直到用完释放为止, 显然它的利用率低。
数组多路通道
将以上两种结合, 它含有多个非分配型子通道, 有很高的传输速率, 又有满意的通道利用率。





