第5章 输入/输出(I/O)管理
5.1 I/O管理概述
5.1.1 I/O设备的概念和分类
1.什么是I/O设备
-
I/O(Input/Output)设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部分
-
UNIX系统将外部设备抽象为一种特殊的文件,用户可以使用与文件操作相同的方式对外部设备进行操作,如Write操作和Read操作
2.I/O设备的分类
- 按使用特性分为:人机交互类外部设备(如鼠标、键盘,传输速度慢)、存储设备(如移动硬盘、光盘,传输速度快)、网络通信设备(如调制解调器,传输速度介于两者之间)
- 按传输速率分类:低速设备、中速设备、高速设备
- 按信息交换的单位分类:块设备(数据传输的基本单位是块,如磁盘,传输速度高,可寻址)、字符设备(数据传输的基本单位是字符,如鼠标、键盘,速率慢,不可寻址,采用中断驱动)
3.总结
5.1.2 I/O控制器
- I/O设备由机械部件和**电子部件(I/O控制器,又称为设备控制器)**组成
1.I/O设备的电子部件(I/O控制器)
- 定义:CPU不能直接控制I/O设备的机械部件,CPU和I/O机械部件中介就是I/O控制器
- 功能:接收和试别CPU发出的命令(控制寄存器)、向CPU报告设备的状态(状态寄存器)、数据交换(数据寄存器)、地址识别
2.I/O控制器的组成
- 由CPU与控制器的接口、I/O逻辑、控制器与设备的接口组成
- 细节:一个I/O控制器可能会对应多个设备,因此寄存器可能也有多个,这些寄存器要有相应的地址,有的计算机会让这些寄存器占用内存地址的一部分,称为内存映像I/O,还有一些计算机采用I/O专用地址,即寄存器独立编址
3.内存映像I/O vs 寄存器独立编址
- 内存映像I/O:控制器中的寄存器与内存地址统一编址,优点是简化了指令;
- 寄存器独立编址:控制器中的寄存器使用单独的地址,缺点是需要设置专门的指令
4.总结
5.1.3 I/O控制方式
1.程序直接控制方式
2.中断驱动方式
3.DMA方式(直接存储器存取)
4.通道控制方式
5.总结
5.1.4 I/O软件的层次结构
1.知识总览
2.用户层软件
3.设备独立性软件
- 设备独立性软件又称设备无关性软件,与设备的硬件特性无关的功能几乎都在这一层实现
- 功能:
- 向上层提供系统调用的接口
- 设备保护(类似于文件的保护)
- 差错处理
- 设备的分配与回收
- 数据缓冲区管理
- 建立逻辑设备名到物理设备名的映射关系;根据设备类型选择调用相应的驱动程序。
- 设备独立性软件通过逻辑设备表(LUT)来确定对应的物理设备,并找到该设备对应的设备驱动程序。LUT由逻辑设备名、物理设备名和驱动程序入口地址组成。操作系统有两种方式管理LUT,第一种是整个系统只有一张LUT,只适合于单用户操作系统;第二种是为每个用户设置一张LUT
4.设备驱动程序
- 主要负责对硬件设备的具体控制,将上层发出的一系列命令转化成特定设备能听得懂的一系列操作
5.中断处理程序
- 当I/O完成时,I/0控制器会发送一个中断信号,系统会根据中断信号类型找到相应的中断处理程序并执行
6.总结
5.1.5 I/O核心子系统
1.知识总览
2.总结
5.1.6 假脱机技术(SPOOLing技术)
1.脱机技术
- 批处理阶段引入了脱机输入/输出技术(用磁带完成)
2.假脱机技术
- 输入/出井类比于磁带,输入/出进程类比于外围控制机
3.共享打印机原理
- 独占式设备:只允许各个进程串行使用的设备
- 共享设备:允许多个进程同时使用的设备
- 打印机是独占式设备,但是可以用SPOOLing技术改造成共享设备
4.总结
5.1.7 设备的分配与回收
1.设备分配时应该考虑的因素
- 设备的固有属性:独占设备、共享设备、虚拟设备
- 设备分配算法
- 设备分配的安全性
- 安全分配方式:在一个时间段内每个进程只能使用一个设备
- 不安全分配方式
2.静态分配和动态分配
- 静态分配:进程运行前为其分配全部所需资源,运行结束后归还资源
- 动态分配:进程运行过程中动态申请设备资源
3.设备分配管理中的数据结构
4.总结
5.1.8 缓冲区管理
1.缓冲区的定义与作用
2.单缓冲
3.双缓冲
4.循环缓冲区
5.缓冲池
6.总结