5.1 I/O管理概述
-
I/O设备
-
按使用特性:人机交互外部设备、存储设备、网络通信设备
-
按信息交换的单位分类:块设备、字符设备
-
-
I/O控制方式
外围设备与内存之间的输入/输出方式:
-
程序直接控制方式
-
中断驱动方式:允许IO设备主动打断CPU的运行并请求服务,从而解放CPU
-
DMA方式:在IO设备和内存之间开辟直接的数据交换通路,特点是:
-
基本单位是数据块
-
所传送的数据,是从设备直接送入内存的,或者相反
-
仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送在DMA控制器的控制下完成。
-
-
通道控制方式
IO通道指专门负责输入输出的处理机。
-
-
I/O子系统的层次结构
I/O软件涉及的面很广,往下与硬件有密切联系,往上与用户直接交互。在I/O软件中普遍采用层次式结构。
一般将I/O系统视为4个层次的系统结构,各层次及功能如下:
-
用户层I/O软件:实现与用户交互的接口,用户可直接调用在用户层提供的库函数,对设备进行操作。
-
设备独立性软件:用于实现用户程序与设备驱动器的统一接口、设备命令、设备保护及设备分配与释放等。设备独立性也称设备无关性,使应用程序独立于具体使用的物理设备。在应用程序中使用逻辑设备名来请求使用某类设备;在系统实际执行时,将逻辑设备名映射成物理设备名使用。
-
设备驱动程序:与硬件直接相关,负责具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序。
-
中断处理程序:保存被中断的进程的CPU环境,转入相应的中断处理程序处理,处理完并恢复被中断进程的现场后,返回到被中断进程。
-
硬件设备:I/O设备通常包括一个机械部件和一个电子部件。
-
5.2 I/O核心子系统
-
I/O调度
I/O调度就是确定一个好的顺序来执行这些I/O请求。I/O调度改善系统整体性能,使进程之间公平地共享设备访问,减少I/O完成所需要的平均等待时间。
-
高速缓存与缓冲区
-
磁盘高速缓存:指利用内存中的存储空间暂存从磁盘中读出的一系列盘块中的信息。磁盘高速缓存逻辑上属于磁盘,物理上是驻留在内存中的盘块。高速缓存在内存中分两种形式:一种是在内存中开辟一个单独的存储空间作为磁盘高速缓存;另一种是把未利用的内存空间作为一个缓冲池。
-
缓冲区:
-
目的:
-
缓和CPU与I/O设备速度不匹配问题
-
减少对CPU的中断频率
-
解决基本数据单元大小不匹配问题
-
提高CPU和I/O设备之间的并行性
-
-
特点:不满不能读,不空不能写
-
分类:单缓冲,双缓冲,循环缓冲,缓冲池
-
-
-
设备分配与回收
-
设备分配:根据用户的请求分配所需的设备。分三种:
-
独占式使用设备:申请设备时,若设备空闲,独占,其他进程不能再申请使用
-
分时式共享使用设备
-
以SPOOLing方式使用外部设备:假脱机I/O技术,对I/O操作进行批处理
-
-
-
SPOOLing技术(假脱机技术)
该技术利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上,或者相反。SPOOLing是外部设备同时联机操作。
-
输入井和输出井:磁盘上开辟出的两个存储区域。输入井模拟脱机输入时的磁盘,收容I/O设备输入的数据;输出井收容用户程序的输出数据。
-
输入缓冲区和输出缓冲区:内存中开辟的两个缓冲区。输入缓冲区暂存由输入设备送来的数据,再送到输入井。输出缓冲区暂存从输出井送来的数据,再输送到输出设备。
-
输入进程和输出进程:输入进程把用户要求的数据从输入机通过通入缓冲区送到输入井。CPU需要数据时,直接把数据从输入井读入内存。输出进程把用户要求输出的数据从内存送到输出井,待输出设备空闲时,再将输出井中数据经过输出缓冲区送到输出设备。
-