资料chapter8

上传人:gb****c 文档编号:243404221 上传时间:2024-09-22 格式:PPT 页数:80 大小:1.32MB
返回 下载 相关 举报
资料chapter8_第1页
第1页 / 共80页
资料chapter8_第2页
第2页 / 共80页
资料chapter8_第3页
第3页 / 共80页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第八章 外部设备管理,8.1 引言,8.2 缓冲技术,8.3 设备分配,8.4 设备控制,8.5 磁盘设备管理,8.6 USB接口,8.7 设备管理举例,外设的,特点:,种类,多,差异,大(控制和速度),外设,外设资源的,控制,外设资源的,共享,提高外设资源的。,1,8.1 引言,8.1.1 外部设备类型和特征,8.1.2 I/O控制技术,8.1.3 外设管理的目的和功能,8.1.4 外设管理结构,返回,2,8.1.1 外部设备类型和特征,人机交互设备,:视频显示设备、键盘、鼠标、打印机,与计算机或其他,电子设备交互,的设备:磁盘、磁带、传感器、控制器,计算机间的,通信设备,:网卡、调制解调器,返回,1. 按交互对象分类,3,2. 按交互方向分类,输入,(可读):键盘、扫描仪,输出,(可写):显示设备、打印机,输入/输出,(可读写):磁盘、网卡,3. 按外设特性分类,使用特征,:存储、输入/输出、终端,数据传输率,:低速(如键盘)、中速(如打印机)、高速(如网卡、磁盘),信息组织特征,:单个字符或数据块,字符设备(如打印机),块设备(如磁盘),4,8.1.2 I/O控制技术,返回,1. 程序控制I/O(programmed I/O),I/O,操作由程序发起,并等待操作完成。数据的每次读写通过,CPU,。,缺点,:在外设进行数据处理时,,CPU,只能等待。,2. 中断方式(interrupt-driven I/O),I/O,操作由程序发起,在操作完成时(如数据可读或已经写入)由外设向,CPU,发出中断,通知该程序。数据的每次读写通过,CPU,。,优点,:在外设进行数据处理时,,CPU,不必等待,可以继续执行该程序或其他程序。,缺点,:,CPU,每次处理的数据量少(通常不超过几个字节),只适于数据传输率较低的设备。,5,3. 直接存储访问方式(DMA, Direct Memory Access),由程序,设置,DMA控制器中的若干寄存器值(如内存始址,传送字节数),然后,发起,I/O操作,而后者,完成,内存与外设的成批数据交换,在操作完成时由DMA控制器向CPU发出,中断,。,优点,:CPU只需干预I/O操作的开始和结束,而其中的一批数据读写无需CPU控制,适于高速设备。,6,DMA方式下的I/O控制器结构,7,4. 通道控制方式(channel control),选择通道(selector channel):可以连接多个外设,而一次只能访问其中一个外设,多路通道(multiplexer channel):可以并发访问多个外设。分为字节多路(byte)和数组多路(block)通道。,通道控制器,(Channel Processor),有自己的专用存储器,可以执行由,通道指令,组成的通道程序,因此可以进行,较为复杂的,I/O,控制,,如网卡上信道访问控制。通道程序通常由操作系统所构造,放在内存里。,优点:执行一个通道程序可以完成几批,I/O,操作。,8,8.1.3 外设管理的目的和功能,方便控制,:方便OS内部对设备的控制。如:增加和删除设备,适应新的设备类型。,共享,:方便用户使用,对不同类型的设备,统一使用方法,,协调对设备的,并发使用,。,提高效率,:提高I/O访问效率,匹配CPU和多种不同处理速度的外设。,返回,1. 外设管理目的,9,2. 外设管理功能,提供,使用设备的用户接口,:命令接口和编程接口,设备分配和释放,:使用设备前,需要分配设备和相应的通道、控制器。,设备的访问和控制,:包括并发访问和差错处理。,I/O缓冲和调度,:目标是提高I/O访问效率,10,8.1.4 外设管理结构,返回,11,逻辑I/O,:逻辑设备(也称为虚拟设备)实体,不涉及实际的设备控制;,针对,用户接口,,提供抽象的命令,如:Open, Close, Read, Write。,针对,通信设备,,则是通信体系结构如网络协议栈;,针对,文件存储设备,,是文件系统的逻辑结构控制;,设备I/O,:逻辑设备与物理设备间的过渡协调机构。,用户命令到设备,操作序列的转换,I/O缓冲,:提高I/O效率。,调度和控制,:物理设备控制实体;,直接面对硬件设备的控制细节,。这部分通常体现为设备驱动程序。,并发I/O访问调度,设备,控制和状态维护,中断处理,12,8.2 缓冲技术,返回,1. 引入缓冲技术的目的,缓冲技术可提高外设利用率,尽可能使外设处于忙状态;但有一个限制:进程的I/O请求不能超过外设的处理能力。,匹配,CPU或用户应用进程与外设的不同处理,速度,减少对CPU的中断次数,,提高CPU和I/O设备之间以及各个I/O设备之间的处理并行性。因此,缓冲区所在的位置:内存、控制器或外设。这些在不同位置的缓冲区组合在一起,构成多级缓冲机制。,13,2. 单方向缓冲,单缓冲,(single buffer):一个缓冲区,CPU和外设轮流使用,一方处理完之后接着等待对方处理。,双缓冲,(double buffer):两个缓冲区,CPU和外设都可以连续处理而无需等待对方。要求CPU和外设的速度相近。,环形缓冲,(circular buffer):多个缓冲区,CPU和外设的处理速度可以相差较大。,14,3. 缓冲池(buffer pool),缓冲区队列,:(三种)空闲缓冲区、输入缓冲区、输出缓冲区,操作,:(四种)设备输入、CPU读入、设备输出、CPU写出。,访问各个缓冲区队列时,需要进行相应的互斥操作。,这是一种双方向缓冲技术;缓冲区整体利用率高。,15,8.3 设备分配,8.3.1 设备分配数据结构,8.3.2 设备分配原则,8.3.3 假脱机技术,返回,由于外设资源的有限,需解决进程间的外设共享问题,以提高外设资源的利用率。设备分配是对进程使用外设过程的管理。这里有两种作法:,在进程间,切换使用,外设,如键盘和鼠标;,通过一个,虚拟设备,把外设与应用进程隔开,只由虚拟设备来使用设备。,16,8.3.1 设备分配数据结构,设备控制表,(DCT, Device Control Table):每个设备一张,,描述设备特性和状态,。反映设备的特性、设备和控制器的连接情况。DCT的内容主要包括:,设备标识:用来区别不同的设备;,设备类型:反映设备的特性;如:块设备或字符设备;,设备配置:I/O地址等;,设备状态:工作或空闲状态;,等待队列:等待使用该设备的进程队列;,返回,17,系统设备表,(SDT, System Device Table):系统内一张,反映,系统中设备资源的状态,,记录所有设备的状态及其设备控制表的入口。SDT表项的主要组成:,DCT指针,:指向相应设备的DCT;,设备使用进程标识,:正在使用该设备的进程标识;,DCT信息,:为引用方便而保存的DCT信息,如:设备标识、设备类型等;,控制器控制表,(COCT, COntroller Control Table):每个设备控制器一张,描述,I/O控制器的配置和状态,。如DMA控制器所占用的中断号、DMA数据通道的分配。,通道控制表(CHCT, CHannel Control Table):每个通道一张,描述通道工作状态。,返回,18,8.3.2 设备分配原则,与设备分配有关的,设备属性,:,独享设备:打印机等;,共享设备:磁盘、网卡等;,设备,分配方式,:各有优缺点,静态分配,:在进程分创建时分配,在进程退出时释放;,不会出现死锁;,设备利用率不高;,动态分配,:在进程执行过程中根据需要分配,使用结束后释放;,需要考虑死锁问题,有利于提高设备利用率,返回,设备分配的原则是,合理,使用外设(公平和避免死锁),提高设备,利用率,。,19,动态分配策略,:针对特定的设备采用特定的分配策略。,先来先服务(FCFS):,按I/O请求的先后顺序,排成I/O请求命令队列;按FCFS分配设备;,基于优先级,:依据进程的优先级,指定I/O请求的优先级,排成不同优先级队列;按优先级高低分配设备;,20,8.3.3 假脱机技术,引入:在多道批处理系统中,专门利用一道程序(SPOOLing程序)来完成对设备的I/O操作。无需使用外围I/O处理机。,返回,利用假脱机技术(SPOOLing, Simultaneous Peripheral Operation On Line, 也称为虚拟设备技术)可,把独享设备转变成具有共享特征的虚拟设备,,从而提高设备利用率。,21,假脱机的原理:,SPOOLing程序和外设进行数据交换,可以称为“,实际I/O,”。一方面,SPOOLing程序预先从外设输入数据并加以缓冲,在以后需要的时候输入到应用程序;另一方面,SPOOLing程序接受应用程序的输出数据并加以缓冲,在以后适当的时候输出到外设。,应用程序进行I/O操作时,只是和SPOOLing程序交换数据,可以称为,虚拟I/O,。这时虚拟I/O实际上是从SPOOLing程序的缓冲池中读出数据或把数据送入缓冲池,而不是跟实际的外设进行I/O操作。,22,优点:,高速,虚拟I/O操作:应用程序的虚拟I/O比实际,I/O速度,提高,缩短应用程序的执行时间。另一方面,程序的虚拟I/O操作时间和实际I/O,操作时间,分离开来。,实现对独享设备的,共享,:由SPOOLing程序提供虚拟设备,可以对独享设备依次共享使用。,举例:打印机设备和可由打印机管理器管理的打印作业队列。,如:Windows NT中,应用程序直接向针式打印机输出需要15分钟,而向打印作业队列输出只需要1分钟,此后用户可以关闭应用程序而转入其他工作,在以后适当的时候由打印机管理器完成15分钟的打印输出而无需用户干预。,23,8.4 设备控制,8.4.1 设备的控制过程,8.4.2 设备控制过程的实现方式,8.4.3 设备驱动程序,返回,24,8.4.1 设备的控制过程,转换,:将抽象的命令转换为具体的一定次序的指令,合法性检查,:检查I/O操作请求的合法性,可用性检查,:检查控制器和设备的状态,判断是否可用,参数设置,:设置控制器和设备的参数,包括构造必要的通道程序,启动I/O,:向控制器或设备发起I/O操作,中断处理,:提供必要的中断处理例程,以便I/O完成时调用,返回,依据用户的控制命令对外设进行控制,并返回结果。控制过程可分为以下6步:,25,8.4.2 设备控制过程的实现方式,作为,应用进程,的一部分执行:与程序控制I/O相对应,难以对外设发出的中断作实时响应,作为,系统进程,执行:每类设备一个进程,或整个系统一个进程处理各类设备,不设进程,作为,OS核心,中的设备驱动程序,返回,26,8.4.3 设备驱动程序,中转数据和控制,:不是数据和控制的源端和目的端(应用程序和设备),与硬件特性密切相关,:通常由硬件厂商提供。,向上屏蔽设备细节,:不同类型设备通常其设备驱动程序接口不同,同类设备的接口相同。因此,同类设备的不同型号,只要更换设备驱动程序则可由OS使用。,返回,驱动程序是I/O处理功能的低级系统例程。它具有如下特征:,27,8.5 磁盘设备管理,8.5.1 磁盘I/O访问时间的组成,8.5.2 磁盘I/O调度策略,8.5.3 磁盘缓存置换算法,返回,CPU和内存的,访问速度,比磁盘要快若干个数量级,磁盘系统的性能,对整个系统的性能有重要影响,,磁盘设备管理的目标就是提高磁盘系统的性能。,28,8.5.1 磁盘I/O访问时间的组成,柱面定位时间:磁头移动到指定柱面的机械运动时间;,旋转延迟时间:磁盘旋转到指定扇区的机械运动时间;它与磁盘转速相关,如:软盘转速可为600rpm(每分钟转速),硬盘可为7,200rpm至15,000rpm。,数据传送时间:从指定扇区读写数据的时间。,返回,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倍,。,30,8.5.2 磁盘I/O调度策略,先进先出算法,优先级算法,后进先出算法,短查找时间优先算法,扫描(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性能。,后进先出(LIFO, Last In First Out)算法,:后产生的磁盘I/O请求,先执行。,该算法是基于事务系统中顺序文件中磁盘I/O的局部性特征:相邻访问的位置也相邻。,它的问题在于系统负载重时,可能有进程的磁盘I/O永远不能执行,处于饥饿状态。,32,短查找时间优先(SSTF, Shortest Service Time First)算法,:考虑磁盘I/O请求队列中各请求的磁头定位位置,选择从当前磁头位置出发,移动最少的磁盘I/O请求。,该算法的目标是使每次磁头移动时间最少。它不一定是最短平均柱面定位时间,但比FIFO算法有更好的性能。,对中间的磁道有利,可能会有进程处于饥饿状态。,扫描(SCAN)算法,:选择在磁头前进方向上从当前位置移动最少的磁盘I/O请求执行,没有前进方向上的请求时才改变方向。,该算法是对SSTF算法的改进,磁盘I/O较好,且没有进程会饿死。,33,循环扫描(C-SCAN)算法,:在一个方向上使用扫描算法,当到达边沿时直接移动到另一沿的第一个位置。,该算法可改进扫描算法对中间磁道的偏好。实验表明,该算法在中负载或重负载时,磁盘I/O性能比扫描算法好。,N步扫描(N-step-SCAN)算法,:把磁盘I/O请求队列分成长度为N的段,每次使用扫描算法处理这N个请求。当N=1时,该算法退化为FIFO算法。,该算法的目标是改进前几种算法可能在多磁头系统中出现,磁头静止,在一个磁道上,导致其它进程无法及时进行磁盘I/O。,双队列扫描(FSCAN)算法,:把磁盘I/O请求分成两个队列,交替使用扫描算法处理一个队列,新生成的磁盘I/O请求放入另一队列中。,该算法的目标与N步扫描算法一致。,34,8.5.3 磁盘缓存置换算法,访问频率置换算法(Frequency-based Replacement),返回,磁盘缓存是,磁盘扇区在内存中的缓冲区,。磁盘缓存的调度算法很类似虚拟存储调度算法,但由于,磁盘的访问频率远低于虚拟存储中的内存访问频率,,它们又存在区别。通常磁盘缓存调度算法会比虚拟存储复杂。,1.访问频率置换算法的引入,它是对LRU(最近最久未使用)算法和LFU(最不常用)算法的改进。它要解决的主要问题是在LFU算法中的,引用计数问题,。磁盘访问可能会十分集中,,在一段密集使用后,引用计数的变化就不能反映当前的引用情况,。需要考虑磁盘访问的这种密集特征,对密集引用不计数。,其基本思想是在短周期中使用LRU算法,而在长周期中使用LFU算法,。,35,2. 访问频率置换算法,把LRU算法中的特殊栈分成三部分,并在每个缓存块增加一个引用计数。,新区域(New Section),中间区域(Middle Section),旧区域(Old Section),36,栈中缓存块被访问时,移到栈顶;如果该块在新区域,引用计数不变;否则,引用计数加1。,在新区域中引用计数不变的目的是,避免密集访问对引用计数不利影响,;,在中间区域和旧区域中引用计数加1是,为了使用LFU算法,;,未缓存数据块读入后,放在栈顶,引用计数为1;,在,旧区域中引用计数最小,的缓存块被置换;,中间区域的定义是为了避免新读入的缓存块在第一次出新区域时马上被置换,有一个过渡期;,37,8.6.1 USB 2.0,Standard USB designation,USB Device,USB,host software,USB Cable,USB Communication Flow,USB Host/Device Detailed View,8.6.2 On-The-Go Supplement to USB 2.0,Two OTG Device Types,Connectors & Plug Overmolds,Initial Host/Peripheral Roles,Host Negotiation Protocol (HNP),Session Request Protocol (SRP),8.6 USB, Universal Serial Bus(通用串行总线),38,8.6.1 USB 2.0,The 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 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 specification,39,Standard USB designation (USB系统组成),40,USB Device,Hub,: 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 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 camera 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,.,41,USB,host software,USB aware operating system software,initialization and monitoring of all USB devices.,Client Software,Achieving the desired USB device functionality.,USB System Software,Enumerating processes and USB monitoring.,USB Host Controller,Hardware and software that allows USB devices to be attached to the host.,42,USB Cable,Data rates:,high-speed signaling 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.,43,USB Communication Flow,Endpoint,A point where data enters or leaves a USB system.,Interface,This collection of endpoints is called an interface and is directly related to a real-world connection.,Configuration,A collection of interfaces is called a configuration, and only one configuration can be active at a time.,44,45,Information Flow,46,USB Host/Device Detailed View,47,8.6.2 On-The-Go Supplement to USB 2.0(移动USB),Lets peripherals assume a,limited host role,allowing them to communicate with each other,when PC not available,OTG is not a USB replacement!,Only for,point-to-point,connections between OTG products,Low-cost ubiquitous,digital interconnect that will be a standard for digital appliances,New,smaller connectors,Hosts required to source min,8 mA,to the USB cable,Standard USB still required to support hubs or connect more than two products,References:,48,49,50,Reference:,51,52,53,54,55,56,57,58,Session Request Protocol,(SRP),Allows the A-device to conserve power by turning V,BUS,off when there is no bus activity,B-device uses SRP to prompt the A-device to turn on V,BUS,and start a session,59,8.7 设备管理举例,8.7.1 UNIX的设备管理,8.7.2 Windows 2000的设备管理,返回,60,8.7.1 UNIX的设备管理,返回,UNIX的外设与特殊文件对应,由文件系统按文件管理方式进行管理,向上提供一个与文件系统统一的接口。,61,1. UNIX的I/O结构,无缓存I/O (Unbuffered I/O):在进程I/O区域与系统I/O模块间直接进行数据交换;,有缓存I/O (Buffered I/O):有缓存I/O要经过系统的缓冲区管理机构;它分成系统缓冲区(system buffer caches)和字符队列(character queues)两种。,按设备I/O的不同情况,UNIX系统的I/O分成2种:,62,2. 块设备(block device)的缓冲区管理,块设备缓冲区结构:,缓存块是缓存使用的基本单位,它与外设数据块相对应;每个缓存块由分立的两部分组成:,缓冲控制块,和,缓冲数据区,。前者用于缓冲区管理,而后者用于存放数据(长度为512字节或1024字节)。,缓存控制块:也称为缓存首部(buffer header)。内容包括:逻辑设备号,物理块号,缓冲区状态(如空闲、延迟写、锁定等标志),指向缓冲数据区的指针,,哈希队列,的前后向指针,空闲队列的前后向指针,缓冲区采用缓冲池结构,主要用于磁盘等外存的缓存。,63,缓冲区管理的相关数据结构,空闲缓存队列,(Free list):系统的所有空闲缓冲区列表;,设备I/O请求队列,(Driver I/O queue):正与外设进行I/O操作的缓存块列表;一个缓存块必须处于空闲或操作状态;,设备缓冲区队列,(Device list):与各外设相关的缓存块列表,其中有缓存数据;它可能处于空闲或操作状态;,缓冲区检索,设备缓冲区队列为,Hash队列,:为了检索方便,设备缓冲区队列为一个按(逻辑设备号,物理块号)组织的Hash队列。把逻辑设备号和物理块号之和对64取模作为哈希函数值,据此建立多个哈希队列(64个队列)。,缓存块可同时链入设备缓冲区队列和空闲缓冲队列,:一个缓存块在分配给一个外设后,一直与该外设相关(既使该缓存块在空闲缓冲队列中),直到分配给另一外设。即:设备释放缓冲区后,该缓冲区可处于,延迟写,状态,等待被写入到外设;该缓冲区被重新分配之前,要将其写入到外设。,64,缓冲区的置换算法,最近最久未使用算法(LRU)算法,缓冲区数据读写:,外设与核心缓冲区间,:,一般读,(从外设读入指定的数据块)、,预先读,(在一般读的基础上,异步读入另一块,以提高数据读取速度);,一般写,(立即起动I/O并等待完成)、,异步写,(立即起动I/O而不等待完成,以提高写速度)、,延迟写,(不立即起动I/O,以减少不必要的I/O操作,但系统故障时会产生数据错误),核心缓冲区与进程的用户区间,:,使用,DMA方式,在缓存与用户进程进行内存到内存的数据传送,可节约CPU时间,但要占用总线。,65,3. 字符设备(character device)的缓冲区管理,字符缓冲池的基本分配单位为,字符缓冲区,cblock:供各种字符设备(的设备驱动程序)使用。,每个缓冲区大小为70字节,,内容包括:第一个字符和最后一个字符的位置(便于从开头移出字符和向末尾添加字符),指向下一个缓冲区的指针c_next,可存放,64个字符,的数据区,字符设备缓存队列clist:,每个字符设备驱动程序对应一个clist。,由若干个cblock依次链接而成,而clist指向第一个和最后一个cblock,所有的空闲缓冲区也对应一个clist。,字符缓冲区采用缓冲池结构,构成一个字符队列(Character Queue),它不同于块设备缓冲区的多次读写,缓冲区中每个字符只能读一次,读后被破坏。,66,字符设备缓冲区的操作,空闲缓冲区操作,:申请空闲缓冲区、释放空闲缓冲区;,字符设备缓冲队列操作,:,从队首,读出,一个字符、向队尾,写入,一个字符、,从队首,读出,n个字符、向队尾,写入,n个字符;,读出,队首缓冲区的所有字符、向队尾,加入,一个有数据的缓冲区、,67,4. 设备开关表(switch table),UNIX设备驱动程序通过相应的块设备开关表和字符设备开关表描述向上,与文件系统的接口,。开关表是每个设备驱动程序的一系列接口过程的入口表,给出了一组,标准操作的驱动程序入口地址,,文件系统可通过开关表中的各函数入口地址转向适当的驱动程序入口。,68,一个设备驱动程序可,同时提供块接口和字符接口,,在两个开关表中各占一个表项;,一个设备驱动程序,不必支持所有的入口点,,可仅返回错误码或返回成功。如:打印机的写入口点;,块设备开关表,:,open:打开设备时调用,完成设备及相关数据结构的初始化;,close:最后一个对设备的引用释放(没有进程打开该设备)时调用,完成设备关闭或脱机;,strategy(用于I/O数据传输):向块设备发出读写请求的公共入口点;操作是异步的,驱动程序可能会优化请求队列。,字符设备,:,open、close,read:从字符设备读取数据;,write:向字符设备写入数据;,ioctl:控制操作字符设备的通用入口点,它的参数为控制命令及命令参数;,69,5. 流机制(streams),流的引入:流的引入是为了解决内核与驱动程序抽象层次过高,而引起的,驱动程序功能大量重复,。它可提供一个完全,基于消息的模块化的驱动程序编写方法,。,流的定义:流是一组系统调用、内核资源和创建、使用及拆除流的,例程的集合,,构成一个,数据传输通道,,两端为读队列和写队列。,70,流的结构:上行流(upstream)和下行流(downstream),71,流的多路复用机制:,上部多路复用器:向上连接多个流;,下部多路复用器:向下连接多个流;,双向多路复用器:同时支持向上连接的多个流和向下连接的多个流;,72,8.7.2 Windows 2000的设备管理,返回,I/O系统结构,73,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支持平台间的源代码可移植);,74,75,2. 核心态驱动程序的类型,文件系统驱动程序,:实现文件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采用,分层驱动程序,的思想,只有最底层的硬件设备驱动程序访问硬件设备,高层驱动程序都是进行,高级I/O请求到低级I/O请求的转换,工作;各层驱动程序间的I/O请求通过,I/O管理器,进行。,76,2. 设备驱动程序的组成,初始化例程,:I/O管理器在加载驱动程序时,利用初始化例程创建系统对象;,调度例程集,:实现设备的各种I/O操作;如:打开、关闭、读取、写入等;,启动I/O例程,:初始化与设备间的数据传输;,中断服务例程,(ISR):设备(软)中断时的调用例程;要求快速简单;,中断服务延迟过程调用(DPC)例程,:以内核线程方式,执行ISR执行后的中断处理工作;,设备驱动程序由一组处理I/O请求的不同阶段的例程组成。,77,78,小结,外部设备,:交互对象、输入输出类型、特性,I/O控制技术,:程序控制、中断驱动、DMA方式、通道方式,外设管理目的和功能,缓冲,:目的、单缓冲、双缓冲和环形缓冲、缓冲池,设备分配,:共享和独享、静态和动态、假脱机技术,设备控制,:工作过程、实现方式、设备驱动程序,磁盘设备管理,:磁盘I/O调度、磁盘缓存置换,USB接口,:USB 2.0、移动USB,设备控制举例,:字符设备、块设备、设备创建、设备驱动程序,79,谢谢!,80,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!