《资料chapter8》由会员分享,可在线阅读,更多相关《资料chapter8(80页珍藏版)》请在金锄头文库上搜索。
1、第八章 外部设备管理8.1 引言8.2 缓冲技术8.3 设备分配8.4 设备控制8.5 磁盘设备管理8.6 USB接口8.7 设备管理举例外设的特点:种类多差异大(控制和速度)外设外设资源的控制外设资源的共享提高外设资源的。18.1 引言8.1.1 外部设备类型和特征8.1.2 I/O控制技术8.1.3 外设管理的目的和功能8.1.4 外设管理结构返回28.1.1 外部设备类型和特征人机交互设备:视频显示设备、键盘、鼠标、打印机与计算机或其他电子设备交互的设备:磁盘、磁带、传感器、控制器计算机间的通信设备:网卡、调制解调器返回1. 按交互对象分类32. 按交互方向分类输入(可读):键盘、扫描仪
2、输出(可写):显示设备、打印机输入/输出(可读写):磁盘、网卡3. 按外设特性分类使用特征:存储、输入/输出、终端数据传输率:低速(如键盘)、中速(如打印机)、高速(如网卡、磁盘)信息组织特征:单个字符或数据块字符设备(如打印机)块设备(如磁盘)48.1.2 I/O控制技术返回1. 程序控制I/O(programmed I/O)I/O操作由程序发起,并等待操作完成。数据的每次读写通过CPU。缺点:在外设进行数据处理时,CPU只能等待。2. 中断方式(interrupt-driven I/O)I/O操作由程序发起,在操作完成时(如数据可读或已经写入)由外设向CPU发出中断,通知该程序。数据的每次
3、读写通过CPU。优点:在外设进行数据处理时,CPU不必等待,可以继续执行该程序或其他程序。缺点:CPU每次处理的数据量少(通常不超过几个字节),只适于数据传输率较低的设备。53. 直接存储访问方式(DMA, Direct Memory Access)由程序设置DMA控制器中的若干寄存器值(如内存始址,传送字节数),然后发起I/O操作,而后者完成内存与外设的成批数据交换,在操作完成时由DMA控制器向CPU发出中断。优点:CPU只需干预I/O操作的开始和结束,而其中的一批数据读写无需CPU控制,适于高速设备。6DMA方式下的I/O控制器结构74. 通道控制方式(channel control)选择
4、通道(selector channel):可以连接多个外设,而一次只能访问其中一个外设多路通道(multiplexer channel):可以并发访问多个外设。分为字节多路(byte)和数组多路(block)通道。通道控制器(Channel Processor)有自己的专用存储器,可以执行由通道指令组成的通道程序,因此可以进行较为复杂的I/O控制,如网卡上信道访问控制。通道程序通常由操作系统所构造,放在内存里。优点:执行一个通道程序可以完成几批I/O操作。88.1.3 外设管理的目的和功能方便控制:方便OS内部对设备的控制。如:增加和删除设备,适应新的设备类型。共享:方便用户使用,对不同类型的
5、设备统一使用方法,协调对设备的并发使用。提高效率:提高I/O访问效率,匹配CPU和多种不同处理速度的外设。返回1. 外设管理目的92. 外设管理功能提供使用设备的用户接口:命令接口和编程接口设备分配和释放:使用设备前,需要分配设备和相应的通道、控制器。设备的访问和控制:包括并发访问和差错处理。I/O缓冲和调度:目标是提高I/O访问效率108.1.4 外设管理结构返回11逻辑I/O:逻辑设备(也称为虚拟设备)实体,不涉及实际的设备控制;针对用户接口,提供抽象的命令,如:Open, Close, Read, Write。针对通信设备,则是通信体系结构如网络协议栈;针对文件存储设备,是文件系统的逻辑
6、结构控制;设备I/O:逻辑设备与物理设备间的过渡协调机构。用户命令到设备操作序列的转换I/O缓冲:提高I/O效率。调度和控制:物理设备控制实体;直接面对硬件设备的控制细节。这部分通常体现为设备驱动程序。并发I/O访问调度设备控制和状态维护中断处理128.2 缓冲技术返回1. 引入缓冲技术的目的 缓冲技术可提高外设利用率,尽可能使外设处于忙状态;但有一个限制:进程的I/O请求不能超过外设的处理能力。匹配CPU或用户应用进程与外设的不同处理速度减少对CPU的中断次数,提高CPU和I/O设备之间以及各个I/O设备之间的处理并行性。因此,缓冲区所在的位置:内存、控制器或外设。这些在不同位置的缓冲区组合
7、在一起,构成多级缓冲机制。132. 单方向缓冲单缓冲(single buffer):一个缓冲区,CPU和外设轮流使用,一方处理完之后接着等待对方处理。双缓冲(double buffer):两个缓冲区,CPU和外设都可以连续处理而无需等待对方。要求CPU和外设的速度相近。环形缓冲(circular buffer):多个缓冲区,CPU和外设的处理速度可以相差较大。143. 缓冲池(buffer pool)缓冲区队列:(三种)空闲缓冲区、输入缓冲区、输出缓冲区操作:(四种)设备输入、CPU读入、设备输出、CPU写出。访问各个缓冲区队列时,需要进行相应的互斥操作。这是一种双方向缓冲技术;缓冲区整体利用
8、率高。158.3 设备分配8.3.1 设备分配数据结构8.3.2 设备分配原则8.3.3 假脱机技术返回由于外设资源的有限,需解决进程间的外设共享问题,以提高外设资源的利用率。设备分配是对进程使用外设过程的管理。这里有两种作法:在进程间切换使用外设,如键盘和鼠标;通过一个虚拟设备把外设与应用进程隔开,只由虚拟设备来使用设备。168.3.1 设备分配数据结构设备控制表(DCT, Device Control Table):每个设备一张,描述设备特性和状态。反映设备的特性、设备和控制器的连接情况。DCT的内容主要包括:设备标识:用来区别不同的设备;设备类型:反映设备的特性;如:块设备或字符设备;设
9、备配置:I/O地址等;设备状态:工作或空闲状态;等待队列:等待使用该设备的进程队列;返回17系统设备表(SDT, System Device Table):系统内一张,反映系统中设备资源的状态,记录所有设备的状态及其设备控制表的入口。SDT表项的主要组成:DCT指针:指向相应设备的DCT;设备使用进程标识:正在使用该设备的进程标识;DCT信息:为引用方便而保存的DCT信息,如:设备标识、设备类型等;控制器控制表(COCT, COntroller Control Table):每个设备控制器一张,描述I/O控制器的配置和状态。如DMA控制器所占用的中断号、DMA数据通道的分配。通道控制表(CHC
10、T, CHannel Control Table):每个通道一张,描述通道工作状态。返回188.3.2 设备分配原则与设备分配有关的设备属性:独享设备:打印机等;共享设备:磁盘、网卡等;设备分配方式:各有优缺点静态分配:在进程分创建时分配,在进程退出时释放;不会出现死锁;设备利用率不高;动态分配:在进程执行过程中根据需要分配,使用结束后释放;需要考虑死锁问题有利于提高设备利用率返回设备分配的原则是合理使用外设(公平和避免死锁),提高设备利用率。19动态分配策略:针对特定的设备采用特定的分配策略。先来先服务(FCFS):按I/O请求的先后顺序,排成I/O请求命令队列;按FCFS分配设备;基于优先
11、级:依据进程的优先级,指定I/O请求的优先级,排成不同优先级队列;按优先级高低分配设备;208.3.3 假脱机技术引入:在多道批处理系统中,专门利用一道程序(SPOOLing程序)来完成对设备的I/O操作。无需使用外围I/O处理机。返回利用假脱机技术(SPOOLing, Simultaneous Peripheral Operation On Line, 也称为虚拟设备技术)可把独享设备转变成具有共享特征的虚拟设备,从而提高设备利用率。21假脱机的原理:SPOOLing程序和外设进行数据交换,可以称为“实际I/O”。一方面,SPOOLing程序预先从外设输入数据并加以缓冲,在以后需要的时候输入
12、到应用程序;另一方面,SPOOLing程序接受应用程序的输出数据并加以缓冲,在以后适当的时候输出到外设。应用程序进行I/O操作时,只是和SPOOLing程序交换数据,可以称为虚拟I/O。这时虚拟I/O实际上是从SPOOLing程序的缓冲池中读出数据或把数据送入缓冲池,而不是跟实际的外设进行I/O操作。22优点:高速虚拟I/O操作:应用程序的虚拟I/O比实际I/O速度提高,缩短应用程序的执行时间。另一方面,程序的虚拟I/O操作时间和实际I/O操作时间分离开来。实现对独享设备的共享:由SPOOLing程序提供虚拟设备,可以对独享设备依次共享使用。举例:打印机设备和可由打印机管理器管理的打印作业队列
13、。如:Windows NT中,应用程序直接向针式打印机输出需要15分钟,而向打印作业队列输出只需要1分钟,此后用户可以关闭应用程序而转入其他工作,在以后适当的时候由打印机管理器完成15分钟的打印输出而无需用户干预。238.4 设备控制8.4.1 设备的控制过程8.4.2 设备控制过程的实现方式8.4.3 设备驱动程序返回248.4.1 设备的控制过程转换:将抽象的命令转换为具体的一定次序的指令合法性检查:检查I/O操作请求的合法性可用性检查:检查控制器和设备的状态,判断是否可用参数设置:设置控制器和设备的参数,包括构造必要的通道程序启动I/O:向控制器或设备发起I/O操作中断处理:提供必要的中
14、断处理例程,以便I/O完成时调用返回依据用户的控制命令对外设进行控制,并返回结果。控制过程可分为以下6步:258.4.2 设备控制过程的实现方式作为应用进程的一部分执行:与程序控制I/O相对应,难以对外设发出的中断作实时响应作为系统进程执行:每类设备一个进程,或整个系统一个进程处理各类设备不设进程,作为OS核心中的设备驱动程序返回268.4.3 设备驱动程序中转数据和控制:不是数据和控制的源端和目的端(应用程序和设备)与硬件特性密切相关:通常由硬件厂商提供。向上屏蔽设备细节:不同类型设备通常其设备驱动程序接口不同,同类设备的接口相同。因此,同类设备的不同型号,只要更换设备驱动程序则可由OS使用
15、。返回驱动程序是I/O处理功能的低级系统例程。它具有如下特征:278.5 磁盘设备管理8.5.1 磁盘I/O访问时间的组成8.5.2 磁盘I/O调度策略8.5.3 磁盘缓存置换算法返回CPU和内存的访问速度比磁盘要快若干个数量级,磁盘系统的性能对整个系统的性能有重要影响,磁盘设备管理的目标就是提高磁盘系统的性能。288.5.1 磁盘I/O访问时间的组成柱面定位时间:磁头移动到指定柱面的机械运动时间;旋转延迟时间:磁盘旋转到指定扇区的机械运动时间;它与磁盘转速相关,如:软盘转速可为600rpm(每分钟转速),硬盘可为7,200rpm至15,000rpm。数据传送时间:从指定扇区读写数据的时间。返
16、回29由于柱面定位时间在访问时间中占主要部分,合理组成磁盘数据的存储位置可提高磁盘I/O性能。例子:读一个128KB大小的文件:(1)文件由8个连续磁道(每个磁道32个扇区)上的256个扇区构成:20ms+(8.3ms+16.7ms)*8=220ms;其中,柱面定位时间为20ms,旋转延迟时间为8.3ms,32扇区数据传送时间为16.7ms;(2)文件由256个随机分布的扇区构成:(20ms+8.3ms+0.5ms)*256=7373ms;其中,1扇区数据传送时间为0.5ms;随机分布时的访问时间为连续分布时的33.5倍。308.5.2 磁盘I/O调度策略先进先出算法优先级算法后进先出算法短查
17、找时间优先算法扫描(SCAN)算法循环扫描(C-SCAN)算法N步扫描(N-step-SCAN)算法双队列扫描(FSCAN)算法返回来自不同进程的磁盘I/O请求构成一个随机分布的请求队列。磁盘I/O调度的主要目标就是减少请求队列对应的平均柱面定位时间。31先进先出(FIFO, First In First Out)算法:磁盘I/O执行顺序为磁盘I/O请求的先后顺序。该算法的特点是公平性;在磁盘I/O负载较轻且每次读写多个连续扇区时,性能较好。优先级算法:依据进程优先级来调整磁盘I/O请求的执行顺序。该算法反映进程在系统的优先级特征,目标是系统目标的实现,而不是改进磁盘I/O性能。后进先出(LI
18、FO, Last In First Out)算法:后产生的磁盘I/O请求,先执行。该算法是基于事务系统中顺序文件中磁盘I/O的局部性特征:相邻访问的位置也相邻。它的问题在于系统负载重时,可能有进程的磁盘I/O永远不能执行,处于饥饿状态。32短查找时间优先(SSTF, Shortest Service Time First)算法:考虑磁盘I/O请求队列中各请求的磁头定位位置,选择从当前磁头位置出发,移动最少的磁盘I/O请求。该算法的目标是使每次磁头移动时间最少。它不一定是最短平均柱面定位时间,但比FIFO算法有更好的性能。对中间的磁道有利,可能会有进程处于饥饿状态。扫描(SCAN)算法:选择在磁
19、头前进方向上从当前位置移动最少的磁盘I/O请求执行,没有前进方向上的请求时才改变方向。该算法是对SSTF算法的改进,磁盘I/O较好,且没有进程会饿死。33循环扫描(C-SCAN)算法:在一个方向上使用扫描算法,当到达边沿时直接移动到另一沿的第一个位置。该算法可改进扫描算法对中间磁道的偏好。实验表明,该算法在中负载或重负载时,磁盘I/O性能比扫描算法好。N步扫描(N-step-SCAN)算法:把磁盘I/O请求队列分成长度为N的段,每次使用扫描算法处理这N个请求。当N=1时,该算法退化为FIFO算法。该算法的目标是改进前几种算法可能在多磁头系统中出现磁头静止在一个磁道上,导致其它进程无法及时进行磁
20、盘I/O。双队列扫描(FSCAN)算法:把磁盘I/O请求分成两个队列,交替使用扫描算法处理一个队列,新生成的磁盘I/O请求放入另一队列中。该算法的目标与N步扫描算法一致。348.5.3 磁盘缓存置换算法访问频率置换算法(Frequency-based Replacement)返回磁盘缓存是磁盘扇区在内存中的缓冲区。磁盘缓存的调度算法很类似虚拟存储调度算法,但由于磁盘的访问频率远低于虚拟存储中的内存访问频率,它们又存在区别。通常磁盘缓存调度算法会比虚拟存储复杂。1.访问频率置换算法的引入它是对LRU(最近最久未使用)算法和LFU(最不常用)算法的改进。它要解决的主要问题是在LFU算法中的引用计数
21、问题。磁盘访问可能会十分集中,在一段密集使用后,引用计数的变化就不能反映当前的引用情况。需要考虑磁盘访问的这种密集特征,对密集引用不计数。其基本思想是在短周期中使用LRU算法,而在长周期中使用LFU算法。352. 访问频率置换算法把LRU算法中的特殊栈分成三部分,并在每个缓存块增加一个引用计数。新区域(New Section)中间区域(Middle Section)旧区域(Old Section)36栈中缓存块被访问时移到栈顶;如果该块在新区域,引用计数不变;否则,引用计数加1。在新区域中引用计数不变的目的是避免密集访问对引用计数不利影响;在中间区域和旧区域中引用计数加1是为了使用LFU算法;
22、未缓存数据块读入后放在栈顶,引用计数为1;在旧区域中引用计数最小的缓存块被置换;中间区域的定义是为了避免新读入的缓存块在第一次出新区域时马上被置换,有一个过渡期;378.6.1 USB 2.0Standard USB designationUSB DeviceUSB host softwareUSB CableUSB Communication FlowUSB Host/Device Detailed View8.6.2 On-The-Go Supplement to USB 2.0Two OTG Device TypesConnectors & Plug OvermoldsInitial H
23、ost/Peripheral RolesHost Negotiation Protocol (HNP)Session Request Protocol (SRP)8.6 USB, Universal Serial Bus(通用串行总线)388.6.1 USB 2.0The USB is a cable bus that supports data exchange between a host computer and a wide range of simultaneously accessible peripherals.The attached peripherals share USB
24、 bandwidth through a host scheduled, token-based protocol. The bus allows peripherals to be attached, configured, used, and detached while the host and other peripherals are in operation.References: Universal Serial Bus Revision 2.0 specification39Standard USB designation (USB系统组成系统组成)40USB DeviceHu
25、b: If a device contains only additional downstream USB ports, then it is called simply a hub.Function (I/O device): An I/O device adds capability to the host. It has a single upstream connection and interacts with the real world to create or consume data on behalf of the PC host.Compound device: If
26、a device includes both I/O and hub functionality, it is called a compound device. A keyboard that includes additional USB downstream ports is such an example.Composite device: If a single device implements two or more sets of device functions, it is called a composite device. For example an eyecam c
27、amera with a camera and dual audio channels and a microphone is a composite device.As far the PC host is concerned, devices are the important feature, and as many as 126 devices can be interconnected using external hubs up to five levels deep.41USB host softwareUSB aware operating system softwareini
28、tialization and monitoring of all USB devices.Client SoftwareAchieving the desired USB device functionality.USB System SoftwareEnumerating processes and USB monitoring.USB Host ControllerHardware and software that allows USB devices to be attached to the host.42USB CableData rates:high-speed signali
29、ng bit rate is 480 Mb/s.full-speed signaling bit rate is 12 Mb/s.low-speed signaling bit rate is 1.5 Mb/s.A USB Cable transports both power supply and data signals.43USB Communication FlowEndpointA point where data enters or leaves a USB system.InterfaceThis collection of endpoints is called an inte
30、rface and is directly related to a real-world connection.ConfigurationA collection of interfaces is called a configuration, and only one configuration can be active at a time.4445Information Flow46USB Host/Device Detailed View478.6.2 On-The-Go Supplement to USB 2.0(移动USB)Lets peripherals assume a li
31、mited host role allowing them to communicate with each other when PC not availableOTG is not a USB replacement!Only for point-to-point connections between OTG productsLow-cost ubiquitous digital interconnect that will be a standard for digital appliancesNew smaller connectorsHosts required to source
32、 min 8 mA to the USB cableStandard USB still required to support hubs or connect more than two productsReferences: 484950Reference: 5152535455565758Session Request Protocol (SRP)Allows the A-device to conserve power by turning VBUS off when there is no bus activityB-device uses SRP to prompt the A-d
33、evice to turn on VBUS and start a session598.7 设备管理举例8.7.1 UNIX的设备管理8.7.2 Windows 2000的设备管理返回608.7.1 UNIX的设备管理返回UNIX的外设与特殊文件对应,由文件系统按文件管理方式进行管理,向上提供一个与文件系统统一的接口。611. UNIX的I/O结构无缓存I/O (Unbuffered I/O):在进程I/O区域与系统I/O模块间直接进行数据交换;有缓存I/O (Buffered I/O):有缓存I/O要经过系统的缓冲区管理机构;它分成系统缓冲区(system buffer caches)和字
34、符队列(character queues)两种。按设备I/O的不同情况,UNIX系统的I/O分成2种:622. 块设备(block device)的缓冲区管理块设备缓冲区结构:缓存块是缓存使用的基本单位,它与外设数据块相对应;每个缓存块由分立的两部分组成:缓冲控制块和缓冲数据区。前者用于缓冲区管理,而后者用于存放数据(长度为512字节或1024字节)。缓存控制块:也称为缓存首部(buffer header)。内容包括:逻辑设备号,物理块号,缓冲区状态(如空闲、延迟写、锁定等标志),指向缓冲数据区的指针,哈希队列的前后向指针,空闲队列的前后向指针缓冲区采用缓冲池结构,主要用于磁盘等外存的缓存。6
35、3缓冲区管理的相关数据结构空闲缓存队列(Free list):系统的所有空闲缓冲区列表;设备I/O请求队列(Driver I/O queue):正与外设进行I/O操作的缓存块列表;一个缓存块必须处于空闲或操作状态;设备缓冲区队列(Device list):与各外设相关的缓存块列表,其中有缓存数据;它可能处于空闲或操作状态;缓冲区检索设备缓冲区队列为Hash队列:为了检索方便,设备缓冲区队列为一个按(逻辑设备号,物理块号)组织的Hash队列。把逻辑设备号和物理块号之和对64取模作为哈希函数值,据此建立多个哈希队列(64个队列)。缓存块可同时链入设备缓冲区队列和空闲缓冲队列:一个缓存块在分配给一个
36、外设后,一直与该外设相关(既使该缓存块在空闲缓冲队列中),直到分配给另一外设。即:设备释放缓冲区后,该缓冲区可处于延迟写状态,等待被写入到外设;该缓冲区被重新分配之前,要将其写入到外设。64缓冲区的置换算法最近最久未使用算法(LRU)算法缓冲区数据读写:外设与核心缓冲区间:一般读(从外设读入指定的数据块)、预先读(在一般读的基础上,异步读入另一块,以提高数据读取速度);一般写(立即起动I/O并等待完成)、异步写(立即起动I/O而不等待完成,以提高写速度)、延迟写(不立即起动I/O,以减少不必要的I/O操作,但系统故障时会产生数据错误)核心缓冲区与进程的用户区间:使用DMA方式在缓存与用户进程进
37、行内存到内存的数据传送,可节约CPU时间,但要占用总线。653. 字符设备(character device)的缓冲区管理字符缓冲池的基本分配单位为字符缓冲区cblock:供各种字符设备(的设备驱动程序)使用。每个缓冲区大小为70字节,内容包括:第一个字符和最后一个字符的位置(便于从开头移出字符和向末尾添加字符),指向下一个缓冲区的指针c_next,可存放64个字符的数据区字符设备缓存队列clist:每个字符设备驱动程序对应一个clist。由若干个cblock依次链接而成,而clist指向第一个和最后一个cblock所有的空闲缓冲区也对应一个clist。字符缓冲区采用缓冲池结构,构成一个字符队
38、列(Character Queue),它不同于块设备缓冲区的多次读写,缓冲区中每个字符只能读一次,读后被破坏。66字符设备缓冲区的操作空闲缓冲区操作:申请空闲缓冲区、释放空闲缓冲区;字符设备缓冲队列操作:从队首读出一个字符、向队尾写入一个字符、从队首读出n个字符、向队尾写入n个字符;读出队首缓冲区的所有字符、向队尾加入一个有数据的缓冲区、674. 设备开关表(switch table)UNIX设备驱动程序通过相应的块设备开关表和字符设备开关表描述向上与文件系统的接口。开关表是每个设备驱动程序的一系列接口过程的入口表,给出了一组标准操作的驱动程序入口地址,文件系统可通过开关表中的各函数入口地址转
39、向适当的驱动程序入口。68一个设备驱动程序可同时提供块接口和字符接口,在两个开关表中各占一个表项;一个设备驱动程序不必支持所有的入口点,可仅返回错误码或返回成功。如:打印机的写入口点;块设备开关表:open:打开设备时调用,完成设备及相关数据结构的初始化;close:最后一个对设备的引用释放(没有进程打开该设备)时调用,完成设备关闭或脱机;strategy(用于I/O数据传输):向块设备发出读写请求的公共入口点;操作是异步的,驱动程序可能会优化请求队列。字符设备:open、closeread:从字符设备读取数据;write:向字符设备写入数据;ioctl:控制操作字符设备的通用入口点,它的参数
40、为控制命令及命令参数;695. 流机制(streams)流的引入:流的引入是为了解决内核与驱动程序抽象层次过高,而引起的驱动程序功能大量重复。它可提供一个完全基于消息的模块化的驱动程序编写方法。流的定义:流是一组系统调用、内核资源和创建、使用及拆除流的例程的集合,构成一个数据传输通道,两端为读队列和写队列。70流的结构:上行流(upstream)和下行流(downstream)71流的多路复用机制:上部多路复用器:向上连接多个流;下部多路复用器:向下连接多个流;双向多路复用器:同时支持向上连接的多个流和向下连接的多个流;728.7.2 Windows 2000的设备管理返回I/O系统结构73I
41、/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支持平台间的源代码可移植);74752. 核心态驱动
42、程序的类型文件系统驱动程序:实现文件I/O请求到物理设备I/O请求的转换;文件系统过滤器驱动程序:截取文件系统驱动程序产生的I/O请求,执行另外处理,并发出相应的低层I/O请求;如:容错磁盘;类驱动程序(class driver):实现对特定类型设备的I/O请求处理;如:磁盘、磁带、光盘等;端口驱动程序(port driver):实现对特定类型I/O端口的I/O请求处理;如:SCSI接口类型;小端口驱动程序:把对端口类型的I/O请求映射到适配器类型;硬件设备驱动程序(hardware device driver):直接控制和访问硬件设备;NT采用分层驱动程序的思想,只有最底层的硬件设备驱动程序
43、访问硬件设备,高层驱动程序都是进行高级I/O请求到低级I/O请求的转换工作;各层驱动程序间的I/O请求通过I/O管理器进行。762. 设备驱动程序的组成初始化例程:I/O管理器在加载驱动程序时,利用初始化例程创建系统对象;调度例程集:实现设备的各种I/O操作;如:打开、关闭、读取、写入等;启动I/O例程:初始化与设备间的数据传输;中断服务例程(ISR):设备(软)中断时的调用例程;要求快速简单;中断服务延迟过程调用(DPC)例程:以内核线程方式,执行ISR执行后的中断处理工作;设备驱动程序由一组处理I/O请求的不同阶段的例程组成。7778小结外部设备:交互对象、输入输出类型、特性I/O控制技术:程序控制、中断驱动、DMA方式、通道方式外设管理目的和功能缓冲:目的、单缓冲、双缓冲和环形缓冲、缓冲池设备分配:共享和独享、静态和动态、假脱机技术设备控制:工作过程、实现方式、设备驱动程序磁盘设备管理:磁盘I/O调度、磁盘缓存置换USB接口:USB 2.0、移动USB设备控制举例:字符设备、块设备、设备创建、设备驱动程序79谢谢!80