760 likes | 920 Views
第五章. 计算机科学与技术专业 2006 操作系统. 操作系统. I/O 软件管理. I/O 硬件管理. 底层硬件设备(物理层). I/O 设备管理概述. 上层用户程序(应用层). 用户进程. 设备无关程序. 设备驱动程序. 中断处理程序. 设备 控制器. DMA. 命令寄存器. I/O 软件体系结构. I/O 请求. I/O 响应. 命名、保护、阻塞、缓冲. 用户 I/O 软件. 设备无关软件. 提供系统库调用,供人员使用;提供类似 Spooling 这样的精灵守护进程管理共享设备. 处理中断信号. 设备驱动程序.
E N D
第五章 计算机科学与技术专业2006操作系统 zhumin@scu.edu.cn
操作系统 I/O软件管理 I/O硬件管理 底层硬件设备(物理层) I/O设备管理概述 上层用户程序(应用层) 用户进程 设备无关程序 设备驱动程序 中断处理程序 设备 控制器 DMA 命令寄存器 2008年春 •操作系统 • 2006级
I/O软件体系结构 I/O请求 I/O响应 命名、保护、阻塞、缓冲 用户I/O软件 设备无关软件 提供系统库调用,供人员使用;提供类似Spooling这样的精灵守护进程管理共享设备 处理中断信号 设备驱动程序 建立设备寄存器、解决错误 中断处理程序 底层硬件设备 2008年春 •操作系统 • 2006级
本章主要内容 • I/O系统 • I/O控制方式 • 缓冲管理 • 设备分配 • 设备处理 • 磁盘存储器管理 • I/O设备 • 设备控制器 • I/O通道 • 总线系统 • 程序I/O控制方式 • 中断驱动I/O控制方式 • DMA I/O控制方式 • I/O通道控制方式 • 缓冲的引入 • 单缓冲和双缓冲 • 循环缓冲 • 缓冲池 • 设备分配中的数据结构 • 设备分配时应考虑的因素 • 设备独立性 • 独占设备的分配程序 • SPOOLing技术 • 磁盘性能简述 • 磁盘调度 • 磁盘高速缓存 • 提高磁盘I/O速度的其他方法 • 廉价磁盘冗余阵列 • 设备驱动程序的功能和特点 • 设备驱动程序的处理过程 • 中断处理程序的处理过程 2008年春 •操作系统 • 2006级
本章重点和难点 • I/O系统 • I/O控制方式 • 缓冲管理 • 设备分配 • 设备处理 • 磁盘存储器管理 • 磁盘访问时间 • 磁盘调度:优化平均寻道时间 • 磁盘调度算法 • FCFS • SSTF • SCAN • CSCAN • N-Step-SCAN • FSCAN 2008年春 •操作系统 • 2006级
本章主要内容 • I/O系统 • I/O控制方式 • 缓冲管理 • 设备分配 • 设备处理 • 磁盘存储器管理 2008年春 •操作系统 • 2006级
5.1 I/O系统 • 5.1.1 I/O设备 • 5.1.2 设备控制器 • 5.1.3 I/O通道 • 5.1.4 总线系统 2008年春 •操作系统 • 2006级
5.1.1 I/O设备-类型 • 按速度分: • 低:键盘 • 中:打印机 • 高:磁盘。 • 按信息交换单位分: • 块:磁盘,可定位 • 字符:打印机、串口 • 按设备的共享属性分: • 独占:如临界资源 • 共享:磁盘 • 虚拟:如本身因有属性为独占,但将其虚拟为几个逻辑设备 2008年春 •操作系统 • 2006级
5.1.1 I/O设备-类型 • 按交互对象分类: • 人机交互设备:视频显示设备、键盘、鼠标、打印机 • 与计算机或其他电子设备交互的设备:磁盘、磁带、传感器、控制器 • 计算机间的通信设备:网卡、调制解调器 • 按交互方向分类: • 输入(可读):键盘、扫描仪 • 输出(可写):显示设备、打印机 • 输入/输出(可读写):磁盘、网卡 2008年春 •操作系统 • 2006级
5.1.1 I/O设备-接口 • CPU―控制器―设备 • 三种信号: • 数据信号:——双向,有缓存 • 控制信号:控制器发给设备;要求其完成相关操作 • 状态信号:设备发给控制器,后者“显示” 2008年春 •操作系统 • 2006级
5.1.2 设备控制器-功能 • 接收CPU命令,控制I/O设备工作,解放CPU • 接收和识别命令。 • 应有相应的Register来存放命令(“命令寄存器”) • 数据交换 • CPU——控制器的数据寄存器——设备 • 设备状态的了解和报告 • 设备控制器中应用“状态寄存器” • 地址识别 • CPU通过“地址”与设备通信,设备控制器应能识别它所控制的设备地址以及其各寄存器的地址。 • 数据缓冲 • 差错控制 2008年春 •操作系统 • 2006级
5.1.2 设备控制器-组成 • 组成 • 各类寄存器:数据、命令、状态 • 信号线:数据线(独立寻址、内存寻址)、地址线、控制线 • I/O逻辑:在其控制下完成与CPU、设备的通信。 2008年春 •操作系统 • 2006级
5.1.3 I/O通道-引入 • 通道 • 一种特殊的执行I/O指令的处理机,与CPU共享内存,可以有自己的总线。 • 引入目的 • 解脱CPU对I/O的组织、管理。 • CPU只需发送I/O命令给通道,通道通过调用内存中的相应通道程序完成任务。 2008年春 •操作系统 • 2006级
5.1.3 I/O通道-类型 • 字节多路通道: • 各子通道以时间片轮转方式共享通道,适用于低、中速设备。 • 数组选择通道: • 无子通道,仅一主通道,某时间由某设备独占,适于高速设备。 • 但通道未共享,利用率低。 • 数组多路通道: • 在图5-3中,多子通道不是以时间片方式,而是“按需分配”,综合了前面2种通道类型的优点。 2008年春 •操作系统 • 2006级
5.1.3 I/O通道 • 通道“瓶颈”问题: • 解决:采用复联方式 • 图5.4 2008年春 •操作系统 • 2006级
5.1.4 总线系统 • 微机I/O系统 • 设备控制器:与设备是一对多的关系,系统是通过它与设备通信 • 系统―――设备控制器―――设备 • 如:磁盘设备,打印设备 • 缺点:总线瓶颈,CPU瓶颈。 2008年春 •操作系统 • 2006级
5.1.4 总线系统 • 主机I/O系统(四级结构) • 计算机―I/O通道―I/O控制器―设备 • I/O通道相当于对总线的扩展,即多总线方式,且通道有一定的智能性,能与CPU并行,解决其负担。 • ISA/EISA/LocalBUS/VESA/PCI • 微机I/O系统 2008年春 •操作系统 • 2006级
本章主要内容 • I/O系统 • I/O控制方式 • 缓冲管理 • 设备分配 • 设备处理 • 磁盘存储器管理 2008年春 •操作系统 • 2006级
5.2 I/O控制方式 • 5.2.1 程序I/O方式 (忙—等待方式) • 5.2.2 中断驱动I/O控制方式 • 5.2.3 直接存储器访问DMA I/O控制方式 (用于块设备中) • 5.2.4 I/O通道控制方式 2008年春 •操作系统 • 2006级
5.2 I/O控制方式 • 四个阶段: • 程序I/O——中断I/O——DMA控制——通道控制。 • 趋势:提高并行度 2008年春 •操作系统 • 2006级
5.2.1 程序I/O • 查询方式:CPU需花代价不断查询I/O状态 (图5-7a) • CPU资源浪费极大 例:99.9ms+0.1ms=100ms 在5.2.1中99.9在忙等 2008年春 •操作系统 • 2006级
5.2.1 中断I/O • I/O操作由程序发起,在操作完成时(如数据可读或已经写入,在此之前,该程序可进入等待状态或继续执行)由外设向CPU发出中断,通知该程序。数据的每次读写通过CPU。 • 向I/O发命令——返回——执行其它任务。 • I/O中断产生——CPU转相应中断处理程序。 如:读数据,读完后以中断方式通知CPU,CPU完成数据从I/O——内存 2008年春 •操作系统 • 2006级
5.2.1 中断I/O • 优点: • 在外设进行数据处理时,CPU不必等待,可以继续执行该程序或其他程序。 • 缺点: • CPU每次处理的数据量少(通常不超过几个字节:从设备控制器中的数据缓冲寄存器中存取数据),只适于数据传输率较低的设备。另外, I/O操作频繁,有可能丢失中断信号。 2008年春 •操作系统 • 2006级
5.2.3 DMA方式 • 引入 • 中断I/O,CPU“字节”干预一次,即每“字节”传送产生一次中断。 • DMA:由DMA控制器直接控制总线传递数据块。DMA控制器完成从I/O——内存。 • 图5.7c • 组成 • 一组寄存器+控制逻辑(图5.8) • CR(命令/状态);DR(数据);MAR(内存地址); DC(计数) • DMA工作过程(例): 2008年春 •操作系统 • 2006级
Direct Memory Access 2008年春 •操作系统 • 2006级
DMA 2008年春 •操作系统 • 2006级
DMA 2008年春 •操作系统 • 2006级
DMA 2008年春 •操作系统 • 2006级
5.2.3 DMA方式 • 由程序设置DMA控制器中的若干寄存器值(如内存始址,传送字节数),然后发起I/O操作,而由后者完成内存与外设的成批数据交换,在操作完成时由DMA控制器向CPU发出中断。 • 优点: • CPU只需干预I/O操作的开始和结束,而其中的数据读写无需CPU控制, CPU与DMA控制器并行工作。适于高速设备。 • 缺点: • 功能比较简单,不能完成较复杂的要求。 2008年春 •操作系统 • 2006级
中断方式和DMA方式的区别 • 中断方式在数据缓冲寄存器满时发中断请求,而DMA方式在数据全部传送完时发中断请求。 • 中断方式中,数据从数据缓冲寄存器到内存是CPU在进行中断处理时完成的。而DMA方式数据是直接在DMA控制下完成的。 2008年春 •操作系统 • 2006级
5.2.4 I/O通道控制方式 • DMA方式: • 对需多离散块的读取仍需要多次中断。 • 通道方式: • CPU只需给出以下信息,通道程序就可完成一组块操作 • 通道程序首址 • 要访问I/O设备 2008年春 •操作系统 • 2006级
本章主要内容 • I/O系统 • I/O控制方式 • 缓冲管理 • 设备分配 • 设备处理 • 磁盘存储器管理 2008年春 •操作系统 • 2006级
5.3 缓冲管理 • 5.3.1 缓冲的引入 • 5.3.2 单缓冲和双缓冲 • 5.3.3 循环缓冲 • 5.3.4 缓冲池(Buffer Pool) 2008年春 •操作系统 • 2006级
5.3 缓冲管理 • 目的: • 组织管理、分配、释放buffer • 5.3.1 引入 • 缓和CPU和I/O设备间速度不匹配的矛盾。 如:计算——打印buffer——打印 • 减少对CPU的中断频率 如:buffer越大,“buffer满”信号发生频率越低。 • 提高CPU和I/O并行性 2008年春 •操作系统 • 2006级
缓冲的分类 • 单方向缓冲: • 单缓冲:一个缓冲区,CPU和外设轮流使用,一方处理完之后接着等待对方处理。 • 双缓冲:两个缓冲区,CPU和外设都可以连续处理而无需等待对方。要求CPU和外设的速度相近。 • 循环缓冲:多个缓冲区,CPU和外设的处理速度可以相差较大。 • 双方向缓冲 • 缓冲池 2008年春 •操作系统 • 2006级
5.3.2 缓冲管理-单缓冲 • 由于C和T可并行,M和C或M和T不能并行,因此处理一块数据时间: Max(C,T)+M • 用户进程何时阻塞? 2008年春 •操作系统 • 2006级
5.3.2 缓冲管理-双缓冲 • 效率有所提高,且进一步平滑了传输峰值。 • 系统处理一块数据的时间约为: • MAX(C,T) • 收发可双向同时传送。(图5-13) 2008年春 •操作系统 • 2006级
5.3.3 缓冲管理-循环多缓冲 • 类型: • R:空缓冲;G:满缓冲;C:当前缓冲 2008年春 •操作系统 • 2006级
循环多缓冲的使用 • nextg:指示下一个应取数据的buf • nexti:指示下一个空buf. • Getbuf: • 取nextg对应缓冲区提供使用,将Nextg置为空, Nextg=(Nextg+1)Mod N • 将Nexti对应缓冲区提供使用,将Nexti置为满, Nexti=(Nexti+1)Mod N • Releasebuf: • 若C满,则改为G • 若C空,则改为R 2008年春 •操作系统 • 2006级
循环多缓冲的同步问题 • Nexti 追上Nextg: 表示输入速度>输出速度,全部buf满, 这时输入进程阻塞 • Nextg追上Nexti: 输入速度<输出速度,全部buf空, 这时输出进程阻塞。 2008年春 •操作系统 • 2006级
5.3.4 缓冲管理-缓冲池 • 缓冲池:系统提供的公用缓冲 • 组成: • 3个队列: • 空缓冲队列emq • 输入队列inq • 输出队列outq • 四个工作缓冲区: • hin:收容输入数据 • sin:提取输入数据 • hout:收容输出数据 • sout:提取输出数据 2008年春 •操作系统 • 2006级
5.3.4 缓冲管理-缓冲池 • 四种工作方式 • 1.收容输入 • 2.提取输入 • 3.收容输出 • 4.提取输出 2008年春 •操作系统 • 2006级
5.3.4 缓冲管理-缓冲池 1.hin=getbuf(emq); putbuf(inq,hin) 2.sin=getbuf(inq); 计算; putbuf(emq,sin) 3.hout=getbuf(emq); putbuf(outq, hout) 4.sout=getbuf(outq);输出;putbuf(emq,sout) 2008年春 •操作系统 • 2006级
5.3.4 缓冲管理-缓冲池 Getbuf和Putbuf过程 Getbuf(type) Begin wait(RS(type)); wait(MS(type)); B(number):=takebuf(type); signal(MS(type)); end Putbuf(type) Begin wait(MS(type)); addbuf(type,number); signal(MS(type)); signal(RS(type)); end 2008年春 •操作系统 • 2006级
本章主要内容 • I/O系统 • I/O控制方式 • 缓冲管理 • 设备分配 • 设备处理 • 磁盘存储器管理 2008年春 •操作系统 • 2006级
设备管理的目的 • 提高效率: • 提高I/O访问效率,匹配CPU和多种不同处理速度的外设 • 方便使用: • 方便用户使用,对不同类型的设备统一使用方法,协调对设备的并发使用 • 方便控制: • 方便OS内部对设备的控制:增加和删除设备,适应新的设备类型 2008年春 •操作系统 • 2006级
设备管理的功能 • 提供设备使用的用户接口: • 命令接口和编程接口 • 设备分配和释放: • 使用设备前,需要分配设备和相应的通道、控制器。 • 设备的访问和控制: • 包括并发访问和差错处理。 • I/O缓冲和调度: • 目标是提高I/O访问效率 2008年春 •操作系统 • 2006级
5.4 设备分配 • 5.4.1 设备分配中的数据结构 • 5.4.2 设备分配时应考虑的因素 • 5.4.3 设备独立性 • 5.4.4 独占设备的分配程序 • 5.4.5 SPOOLing技术 2008年春 •操作系统 • 2006级
5.4 设备分配 • 包括:对设备、设备控制器、通道的分配 • 5.4.1 数据结构 • 设备控制表DCT • 控制器控制表(COCT) • 通道表(CHCT) • 系统设备表(SDT)图5-17 SDT:记录了系统中全部设备及其驱动程序地址。 2008年春 •操作系统 • 2006级