I/O外设管理(第七章)
I/O系统的功能、模型与接口
基本功能
隐藏I/O设备细节
保证设备无关性
提高处理机和I/O设备的利用率
对I/O设备进行控制
确保对设备的正确共享
处理错误
层次结构与模型
用户层软件
与设备无关的I/O软件
设备驱动程序
中断处理程序
I/O系统的接口
块设备接口
流设备接口
网络通信接口
I/O系统
I/O硬件
分类
信息交换单位:字符设备、块设备
设备使用特性:存储设备、I/O设备
传输速率:低速设备、中速设备、高速设备
设备共享属性:独占设备、共享设备、虚拟设备
设备控制器
功能:与设备通信、控制设备操作、处理设备数据、协调设备
组成:指令寄存器、指令编码器、定时与控制电路、程序计数器、标志寄存器、堆栈和堆栈指针、寄存器组
通道
通过执行通道程序,管理I/O操作的控制器
CPU与外设的并行工作
价格昂贵 瓶颈问题
I/O软件
I/O控制方式
程序控制方式——CPU直接管理I/O操作
中断控制方式——外部设备可以通过触发中断来通知CPU数据的可用性
直接存储器访问DMA方式——允许外部设备之间访问系统内存,不需要经过CPU
通道控制方式——专用硬件设备,独立执行I/O操作,不需要CPU直接干预
设备无关性
设备分配:
数据结构——系统设备表、设备控制表、控制器控制表和通道控制表(通道控制表 一对多 控制器控制表)
设备分配算法——先来先服务、优先级
用户层软件
系统调用与库函数:
系统调用执行时涉及内核态和用户态之间的切换
库函数执行时不涉及内核态和用户态之间的切换
SPOOLing系统:
组成:输入井和输出井(磁盘中)、输入缓冲区和输出缓冲区(内存中)、输入进程和输出进程
特点:提高I/O速度,将独占设备改造为共享设备,实现虚拟设备功能
应用:假脱机打印技术——磁盘缓冲区、打印缓冲区、假脱机管理进程和假脱机打印进程
※需要外存的支持;需要多道程序设计技术的支持;可以让多个作业共享一台独占设备;但是设备与输入/输出井之间数据传送是由系统实现的
缓冲区管理
※引入缓冲的原因
缓冲:使用专用的硬件缓冲器或在内存中划出一个区域用来暂时存放输入输出数据的器件
协调速度相差很大的设备之间的数据传送,减少对CPU的中断频率,放宽对中断响应时间的限制,提高CPU和I/O设备之间的并行性;缓和处理器和内存之间访问速度不匹配的矛盾
高速缓存
主存和CPU之间,临时存储区域,快速访问
缓冲区
单缓冲
双缓冲——两个缓冲区(写入+读取)
循环缓冲——固定大小的缓冲区
缓冲池——集中管理的内存区域
磁盘
外部设备
磁盘地址
柱面号、盘面号、扇区号
磁盘类型
固定头磁盘
移动头磁盘
磁盘访问时间T
磁盘访问时间=寻道时间+旋转延迟+传输时间
磁盘调度算法
先来先服务FCFS
最短寻道时间优先SSTF
电梯算法/扫描算法SCAN
循环扫描算法CSCAN
※磁臂黏着
概念:系统总是访问磁盘的某个磁道二不响应其他磁道的访问需求;有一个或几个进程对某一磁道有着较高的访问频率,反复对一个磁道进行I/O请求
先来先服务不会产生该现象
※
磁盘管理
磁盘初始化
引导块
坏块
提高磁盘I/O速度的方法
磁盘高速缓存
提前读、延迟写、优化物理块分布、虚拟盘
廉价磁盘冗余阵列
※设备独立性
可以使用文件名访问物理设备
用户程序使用逻辑设备与物理设备之间的映射关系
用户程序中使用的是逻辑设备名
访问设备的驱动程序与具体设备无关,更换设备时应用程序无需修改