1、第10章 设备管理,I/O基本概念 I/O控制技术 I/O子系统层次结构 设备分配 假脱机技术 设备控制 磁盘调度管理 WindowsNT设备管理举例,10.1 概述,I/O设备在计算机系统中除CPU和内存储外所有的设备和装置。也叫计算机外部设备(外围设备)。 I/O子系统 操作系统中负责I/O设备管理的功能模块。 外设的特点: 种类多 差异大(控制和速度),按交互对象分类: 人机交互设备:视频显示设备、键盘、鼠标、打印机。 与计算机或其他电子设备交互的设备:磁盘、磁带、传感器、控制器。 计算机间的通信设备:网卡、调制解调器。按外设特性分类 使用特征:存储、输入/输出、终端 信息组织特征: 块
2、设备:信息按字符块组织和处理。(面向块的设备) 如:磁盘。 字符设备:信息按字符组织和处理。(面向字符的设备)。如:打印机。,设备分类,1、I/O控制技术,程序控制I/O(programmed I/O)I/O操作由程序发起,程序执行忙等待操作等待操作完成。数据的每次读写通过CPU。 缺点:在外设进行数据处理时,CPU只能等待(忙等待)。,1、I/O控制技术,中断驱动方式(interrupt-driven I/O) I/O操作由程序发起,在操作完成时(如数据可读或已经写入)由外设向CPU发出中断,通知该程序。数据的每次读写通过CPU。 优点:在外设进行数据处理时,CPU不必等待,可以继续执行该程
3、序或其他程序。 缺点:每次I/O都要CPU的干预,CPU每次处理的数据量少(通常不超过几个字节),只适于数据传输率较低的设备。,1、I/O控制技术,直接存储访问方式(DMA) Direct Memory Access 由程序设置DMA控制器中的若干寄存器值(如内存起始地址,传送字节数),然后发起I/O操作,而DMA控制器完成内存与外设的成批数据交换,在操作完成时由DMA控制器向CPU发出中断。 优点:CPU只需干预I/O操作的开始和结束,而其中的一批数据读写无需CPU控制,适于高速设备。,DMA方式下的I/O控制器结构,通道控制方式(channel control),通道:是计算机系统中专门用
4、于I/O的处理机。 在大、中、小型计算机中一般称为通道,结构如图所示,通道控制方式(channel control),通道控制器(Channel Processor)有自己的专用存储器,可以执行由通道指令组成的通道程序,因此可以进行较为复杂的I/O控制,如网卡上信道访问控制。通道程序通常由操作系统所构造,放在内存里。优点:执行一个通道程序可以完成几批I/O操作。 选择通道(selector channel):可以连接多个外设,而一次只能访问其中一个外设。 多路通道(multiplexor channel):可以并发访问多个外设。分为字节多路(byte)和数组多路(block)通道。,2、设备管
5、理的目的和功能,I/O子系统设计目标 有效性: 提高效率:提高I/O访问效率,匹配CPU和多种不同处理速度的外设 通用性 方便使用:方便用户使用,对不同类型的设备统一使用方法,协调对设备的并发使用 方便控制:方便OS内部对设备的控制:增加和删除设备,适应新的设备类型,设备独立性,设备独立性是指用户在编程序时所使用的设备与实际设备无关。 两类设备独立性: 一个程序应独立于分配给它的某类设备的具体设备。即在用户程序中只指明I/O使用的设备类型即可。如在系统中配备了两台打印机,用户要打印时只要告诉系统要将信息送到打印机即可。 程序要尽可能地与它使用的设备类型无关。即在用户程序中只要指出要输入或输出信
6、息,至如信息I/O使用的设备不需用户指明。,设备存取实现对设备的存取操作,提供命令接口和编程接口。 设备分配在多用户的环境下,负责设备的分配和回收。 设备控制设备控制包括设备的驱动、完成和故障中断处理。 状态跟踪设备控制块是存放设备管理和控制信息的数据结构。 系统要掌握设备的状态。,3、 I/O管理功能,4、 I/O子系统层次模型,逻辑I/O:逻辑设备(也称为虚拟设备)实体,不涉及实际的设备控制; 针对用户接口,提供抽象的命令,如:Open, Close, Read, Write。 针对通信设备,则是通信体系结构如网络协议栈; 针对文件存储设备,是文件系统的逻辑结构控制;,设备I/O:逻辑设备
7、与物理设备间的过渡协调机构。 用户命令到设备操作序列的转换 I/O缓冲:提高I/O效率。 调度和控制:物理设备控制实体;直接面对硬件设备的控制细节。这部分通常体现为设备驱动程序。 并发I/O访问调度 设备控制和状态维护 中断处理,10.2 设备分配,由于外设资源的有限,需解决进程间的外设共享问题,以提高外设资源的利用率。设备分配是对进程使用外设过程的管理。这里有两种作法: 在进程间切换使用外设,如键盘和鼠标; 通过一个虚拟设备把外设与应用进程隔开,只由虚拟设备来使用设备。,1、 设备分配原则,设备分配的原则是合理使用外设(公平和避免死锁),提高设备利用率。,独占设备 在一段时间内只能有一个进程
8、使用的设备,一般为低速I/O设备。(如打印机,磁带等) 共享设备 在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高。(如磁盘、网卡) 虚拟设备 在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚拟设备。 目的:将慢速的独占设备改造成多个用户可共享的设备,提高设备的利用率,设备分配方式: 静态分配:在进程创建时分配,在进程退出时释放; 不会出现死锁; 设备利用率不高; 动态分配:在进程执行过程中根据需要分配,使用结束后释放; 需要考虑死锁问题 有利于提高设备利用率,动态分配策略:针对特定的设备采用特定的分配策略。
9、 先来先服务(FCFS):按I/O请求的先后顺序,排成I/O请求命令队列;按FCFS分配设备; 基于优先级:依据进程的优先级,指定I/O请求的优先级,排成不同优先级队列;按优先级高低分配设备;,2、假脱机技术,利用假脱机技术(SPOOLing, Simultaneous Peripheral Operation On Line, 也称为虚拟设备技术)可把独享设备转变成具有共享特征的虚拟设备,从而提高设备利用率。在多道批处理系统中,专门利用一道程序(SPOOLing程序)来完成对设备的I/O操作。无需使用外围I/O处理机。,假脱机的原理,SPOOLing程序和外设进行数据交换,可以称为“实际I/
10、O”。一方面,SPOOLing程序预先从外设输入数据并加以缓冲,在以后需要的时候输入到应用程序;另一方面,SPOOLing程序接受应用程序的输出数据并加以缓冲,在以后适当的时候输出到外设。 在SPOOLing程序中,需要管理两级缓冲区:内存缓冲区和快速外存上的缓冲池,后者可以暂存多批I/O操作的较多数据。 应用程序进行I/O操作时,只是和SPOOLing程序交换数据,可以称为“虚拟I/O“。这时虚拟I/O实际上是从SPOOLing程序的缓冲池中读出数据或把数据送入缓冲池,而不是跟实际的外设进行I/O操作。,优点: 高速虚拟I/O操作:应用程序的虚拟I/O比实际I/O速度提高,缩短应用程序的执行
11、时间。另一方面,程序的虚拟I/O操作时间和实际I/O操作时间分离开来。 实现对独享设备的共享:由SPOOLing程序提供虚拟设备,可以对独享设备依次共享使用。 举例:打印机设备和可由打印机管理器管理的打印作业队列。 如:Windows NT中,应用程序直接向针式打印机输出需要15分钟,而向打印作业队列输出只需要1分钟,此后用户可以关闭应用程序而转入其他工作,在以后适当的时候由打印机管理器完成15分钟的打印输出而无需用户干预。,10.3 设备控制,设备的控制过程 设备控制过程的实现方式 设备驱动程序,1、设备的控制过程,转换:将抽象的命令转换为具体的一定次序的指令 合法性检查:检查I/O操作请求
12、的合法性 可用性检查:检查控制器和设备的状态,判断是否可用 参数设置:设置控制器和设备的参数,包括构造必要的通道程序 启动I/O:向控制器或设备发起I/O操作 中断处理:提供必要的中断处理例程,以便I/O完成时调用,依据用户的控制命令对外设进行控制,并返回结果。控制过程可分为以下6步:,2、设备控制过程的实现方式,作为应用进程的一部分执行:与程序控制I/O相对应,难以对外设发出的中断作实时响应 作为系统进程执行:每类设备一个进程,或整个系统一个进程处理各类设备 不设进程,作为OS核心中的设备驱动程序,3、设备驱动程序,中转数据和控制:不是数据和控制的源端和目的端(应用程序和设备) 与硬件特性密
13、切相关:通常由硬件厂商提供。 向上屏蔽设备细节:不同类型设备通常其设备驱动程序接口不同,同类设备的接口相同。因此,同类设备的不同型号,只要更换设备驱动程序则可由OS使用。,驱动程序是I/O处理功能的低级系统例程。它具有如下特征:,CPU和内存的访问速度比磁盘要快若干个数量级,磁盘系统的性能对整个系统的性能有重要影响,磁盘调度的目标就是提高磁盘系统的性能。 主要内容 磁盘I/O访问时间的组成 磁盘I/O调度策略 磁盘缓存置换算法,10.4 磁盘调度,1、磁盘I/O访问时间的组成,柱面定位时间:磁头移动到指定柱面的机械运动时间; 旋转延迟时间:磁盘旋转到指定扇区的机械运动时间;它与磁盘转速相关,如
14、:软盘转速可为600rpm(每分钟转速),硬盘可为7200rpm。 数据传送时间:从指定扇区读写数据的时间。,2、查找优化策略,目标:降低查找时间 评价:吞吐量,平均响应时间,响应时间的可预期性(或变化幅度)。 优化:移动磁头所花时间正比于所需移动的总的距离。 查找优化策略: 先来先服务(FCFS) 最短查找时间优先(SSTF) 扫描策略(SCAN)/(电梯调度算法) 循环扫描策略(C-SCAN),原则:各进程对磁盘请求的等待队列按提出请求的时间进行排序,并按此次序给予服务。 评价: 访问请求均匀分布整个盘面,而不具有某种集中倾向时,导致随机访问模式无法对访问优化! 访问请求较多时,降低设备服
15、务的吞吐量,提高响应时间; 响应时间变化幅度较小! 应用:在访问请求不是很多情况下可接受,且算法较简单。,先来先服务(FCFS),FCFS:当前磁道=100; 磁头移动总距离=1604磁道,原则:选择请求队列中柱面号最接近于当前磁头所在柱面的访问请求作为下一个服务对象,即先执行查找时间最小的那个请求,而不管是否在磁臂的前进方向上还是相反。 优点:较好的吞吐量(比FCFS),较低的平均响应时间。 缺点: 响应时间变化幅度很大,因为 对用户请求的响应机会不均等:对中间磁道的访问请求得到最好的服务,对内,外两侧磁道的服务随偏离中心磁道的距离而越远越差; 响应时间变化幅度很大:服务请求很多时可能造成对
16、内,外边缘磁道的请求将会无限期地被迟延,最短查找时间优先(SSTF),SSTF:当前磁道=100; 磁头移动总距离=700磁道,SSTF算法的变种 原则: 选择请求队列中按磁臂前进方向最接近于磁头当前所在柱面的访问要求作为下一 个服务对象。 由内向外,由外向内,反复地扫描访问请求,依次给予服务。 若沿此方向不再有访问请求时,不必继续扫描,而是改变移动方向使磁臂的移动频率和距离最小。 优点:吞吐量比较大,平均响应时间较小。 缺点:两侧磁道访问频率仍低于中间磁道响应时间变化幅度仍有不同,但优于SSTF。,扫描策略(SCAN),SCAN: 当前磁道=100; 移动方向=OUT (向0道) 磁头移动总
17、距离=490磁道,循环扫描策略(C-SCAN),SCAN扫描算法的变种。 原则: 磁臂总是从0号柱面至最大号柱面顺序扫描,到头后直接返回0号柱面再重复进行(单向扫描) 当磁臂由外向内移动过程中,只服务于在磁臂本次移动开始前到达的访问请求,而不理会在磁臂单向移动过程中到达的新的访问请求留给下一次。 每次扫描直到对最内柱面上的访问请求满足后,磁臂即直接向外移动,使磁头停留在所有新的访问请求最外面的柱面上。然后再对本次移动前到达的访问请求依次给予服务。,C-SCAN:当前磁道=100; 移动方向=IN(向内) 磁头移动总距离=642磁道,10.5 Windows NT的设备管理,1. NT的I/O系
18、统结构,I/O子系统:实现文件化的I/O函数; 通常的打开、关闭和读写函数; 异步I/O:应用进程在发出I/O请求后,不需等待I/O完成,可继续其它工作; 映射文件I/O:把文件作为进程虚拟空间的一部分进行直接访问; 快速I/O:不通过I/O管理器,直接向驱动程序发出I/O请求; I/O管理器:依据抽象I/O操作创建和传送I/O请求包(IRP);,核心态设备驱动程序:将I/O请求包转化为对硬件设备的特定控制请求; 驱动程序支持例程:供设备驱动程序调用,以完成I/O请求; 硬件抽象层I/O访问例程:隔离驱动程序与硬件平台,以提高可移植性(同体系结构上的二进制可移植和NT支持平台间的源代码可移植)
19、;,2. 核心态驱动程序的类型,NT采用分层驱动程序的思想,只有最底层的硬件设备驱动程序访问硬件设备,高层驱动程序都是进行高级I/O请求到低级I/O请求的转换工作;各层驱动程序间的I/O请求通过I/O管理器进行。,文件系统驱动程序:实现文件I/O请求到物理设备I/O请求的转换; 文件系统过滤器驱动程序:截取文件系统驱动程序产生的I/O请求,执行另外处理,并发出相应的低层I/O请求;如:容错磁盘; 类驱动程序(class driver):实现对特定类型设备的I/O请求处理;如:磁盘、磁带、光盘等; 端口驱动程序(port driver):实现对特定类型I/O端口的I/O请求处理;如:SCSI接口类型; 小端口驱动程序:把对端口类型的I/O请求映射到适配器类型; 硬件设备驱动程序(hardware device driver):直接控制和访问硬件设备;,3. 设备驱动程序的组成,设备驱动程序由一组处理I/O请求的不同阶段的例程组成。 初始化例程:I/O管理器在加载驱动程序时,利用初始化例程创建系统对象; 调度例程集:实现设备的各种I/O操作;如:打开、关闭、读取、写入等; 启动I/O例程:初始化与设备间的数据传输; 中断服务例程(ISR):设备(软)中断时的调用例程;要求快速简单; 中断服务延迟过程调用(DPC)例程:以内核线程方式,执行ISR执行后的中断处理工作;,