您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > windows操作系统之设备管理解析
Windows-设备管理WindowsI/O系统WindowsI/O系统由若干执行体组件与设备驱动程序构成,联合起来管理硬件设备,并向应用程序和系统提供接口以操纵硬件设备。WindowsI/O系统的设计目标是为应用程序提供一个有关设备的抽象,包括硬件(物理)设备和软件(虚拟或逻辑)设备。HALWDMWMI例程PnP管理器电源管理器I/O管理器……用户模式内核模式.inf文件.cat文件注册表用户模式PnP管理器安装组件Windows服务应用程序WMI服务I/O系统驱动程序I/O管理器I/O管理器是I/O系统的核心;它将应用程序和系统组件与虚拟的、逻辑的和物理的设备连接起来,并定义了基础设施来支持设备驱动程序。设备驱动程序设备驱动程序通常为某一种特定类型的设备提供I/O接口;设备驱动程序接收来自I/O管理器传送来的命令,完成这些命令,然后通知I/O管理器;设备驱动程序通常使用I/O管理器来向其他的共享统一设备接口的设备驱动程序转送I/O命令。PnP管理器PnP管理器与I/O管理器及总线驱动程序(busdriver)一起工作,以指导硬件资源的分配,检测并响应硬件设备的加入和移除。PnP管理器和总线驱动程序负责在检测到一个设备时,加载该设备的驱动程序。当一个设备被加入到缺乏正确设备驱动程序的系统中时,执行体PnP管理器将请求用户模式PnP管理器的设备安装服务。电源管理器电源管理器与I/O管理器一起工作,以指导系统和各个单独的设备驱动程序能够经历电源状态的转变。系统电源状态描述整体系统的能源消耗,包括系统工作状态、系统休眠状态及系统关机状态等。硬件抽象层HALHAL提供一组API,将不同平台之间的差异隐藏起来,从而使驱动程序与处理器和中断控制器的特殊性相互隔离开。一组Windows管理规范(WMI)支持例程即Windows驱动程序模型(WDM)WMI提供者,主要用于系统管理和监视。设备驱动程序可以使用WDMWMI提供者作为中间媒介与用户模式的WMI服务进行通信。同时需要注意的是:Windows操作系统是分态的操作系统,用户应用程序运行在用户态,操作系统代码(如系统服务和设备驱动程序)在核心态下运行。用户态程序只能调用Windows子系统提供的API来同设备交互,当请求传递到I/O管理器时,它进行必要的参数匹配和操作安全性检查,然后由这个请求构造出合适的I/O请求包(IRP),并把此IRP传递到适当的驱动程序去,并给应用程序一个消息,通知这次I/O操作还没完成。驱动程序一般是通过硬件抽象层来和硬件交互,从而完成I/O请求工作。驱动程序完成I/O操作后,它将调用一个特殊的内核服务例程来完成IRP。这时,I/O管理器把数据和结果返回给Windows和用户应用程序。I/O控制方式程序I/O方式中断驱动I/O控制方式DMAI/O控制方式I/O通道控制方式程序I/O方式向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读入字向存储器中写字传送完成?下一条指令完成CPU→I/OI/O→CPUI/O→CPU出错CPU→内存未完未就绪就绪中断驱动I/O控制方式向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读入字向存储器中写字传送完成?下一条指令完成﹍﹍CPU→I/OI/O→CPUI/O→CPU出错CPU→内存未完就绪CPU做其它事﹍﹍中断DMA控制方式设置MAR和DC初值启动DMA传送命令挪用存储器周期传送数据字存储器地址增1字计数寄存器减1DC=0?请求中断在继续执行用户程序的同时,准备又一次传送否是I/O通道控制方式简介:I/O通道方式是DMA方式的发展,可进一步减少CPU的干预,把对一个数据块的读(或写)为单位的干预减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。通道时负责外围设备与主存之间进行数据交换、能单独完成输入输出操作的处理机。它控制设备与内存直接进行数据交换,它有自己的通道指令,这些通道指令的运行由CPU启动,并在操作结束时向CPU发出中断信号。通道程序由一系列通道指令所构成,通道指令的每条指令中包含如下信息:①操作码;②内存地址;③计数;④通道程序结束位P;⑤记录结束标志R。工作流程:CPU向I/O通道发送一条I/O指令,以给出其所要执行的通道程序的首址和要访问的I/O设备,通道程序接到该指令后,通过执行通道程序便可完成CPU指定的I/O任务。I/O通道控制方式的优点:实现CPU、通道和I/O设备三者的并行操作,执行一个通道程序可以完成几批I/O操作,更有效地提高整个系统的资源利用率。缓冲管理缓冲技术:1.发送请求发出一段时间后才执行输出传送;2.输入请求发出之前就执行输入传送。缓冲的引入的作用:1.缓和CPU与I/O设备间速度不匹配的矛盾。2.减少对CPU的中断频率,放宽对CPU中断响应时间的限制3.提高CPU和I/O设备之间的并行性。1位缓冲9.6Kb/s8位缓冲寄存器送内存9.6Kb/s8位缓冲寄存器9.6Kb/s送内存(b)(a)(c)0.1ms0.8ms0.8ms单缓冲(SingleBuffer)工作区处理(C)缓冲区传送(M)输入(T)I/O设备(a)T1M1C1T2M2C2T3M3C3T4t(b)用户进程Max(C,T)+M双缓冲(DoubleBuffer)工作区用户进程缓冲区1缓冲区2I/O设备T1(缓冲1)M1C1M2C2M3C3T2(缓冲2)T3(缓冲3)M4C4T4(缓冲4)(a)(b)Max(C,T)缓冲区缓冲区A机B机(a)单缓冲发送缓冲区接收缓冲区接收缓冲区发送缓冲区A机B机(b)双缓冲RGGGRG165423NextiNextgRGGGRC165423NextiNextgcurrent双机通信时缓冲区的设置循环缓冲公用缓冲池(BufferPool)缓冲池的组成:对于既可用于输入又可用于输出的公用缓冲池,其中至少应含有以下三种类型的缓冲区:①空(闲)缓冲区;②装满输入数据的缓冲区;③装满输出数据的缓冲区。为了管理上的方便,可将相同类型的缓冲区链成一个队列,于是可形成以下三个队列:(1)空缓冲队列emq。(2)输入队列inq。(3)输出队列outq。缓冲区的工作方式hinsoutsinhout收容输入提取输出用户程序提取输入收容输出缓冲池I/O软件的设计目标I/O软件的总目标:•高效率:确保I/O设备与CPU的并发性。•通用性:提供简单抽象清晰和统一的接口。I/O软件的具体目标:•与具体设备无关•统一命名:不同的OS命名规则不一样。•错误处理:越底层处理越好•缓冲技术•设备的分配和释放•I/O控制方式I/O软件的层次结构用户层软件设备独立性软件设备驱动程序中断处理程序硬件产生I/O请求、格式化I/O、SPOOLING技术映射、保护、分块、缓冲、分配设置设备寄存器、检查寄存器状态执行I/O操作设备驱动程序设备驱动程序的功能:(1)接收由I/O进程发来的命令和参数,并将命令中的抽象要求转换为具体要求(2)检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数,设置设备的工作方式。(3)发出I/O命令,如果设备空闲,便立即启动I/O设备去完成指定的I/O操作;如果设备处于忙碌状态,则将请求者的请求块挂在设备队列上等待。(4)及时响应由控制器或通道发来的中断请求并进行处理。(5)对于设置有通道的计算机系统,驱动程序还应能够根据用户的I/O请求,自动地构成通道程序。设备驱动程序的处理过程1.2.检查I/O3.读出和检查设备的状态4.传送必要的参数5.工作方式的设置6.启动I/O设备Windows驱动程序模型重新定义了驱动程序分层:FDOFIDOPDOFIDO上层过滤层驱动程序IRP功能驱动程序下层过滤层驱动程序总线驱动程序。。。。。。。。。。。。WDM驱动程序层次结构该层次结构左边是一个设备对象堆栈。设备对象是系统为帮助软件管理硬件而创建的数据结构。一个物理硬件可以有多个这样的数据结构。处于堆栈最底层的设备对象称为物理设备对象PDO(PhysicalDeviceObject),,代表了设备与总线之间的连接。在设备对象堆栈中间的对象称为功能设备对象FDO(FunctionalDeviceObject),代表了设备的功能。在FDO的上面或下面还会有一些过滤器设备对象FIDO(FilterDeviceObject)。总线驱动程序负责枚举它的总线,这意味着:发现总线上的全部设备和检测设备何时被添加或修改,并为每一个设备创建一个PDO。功能驱动程序知道如何控制设备的主要功能,它分层在总线驱动程序的上面。功能驱动程序创建一个功能设备对象,放在设备栈中。对总线上的所有设备,总线过滤驱动程序被加在总线驱动程序之上;设备过滤驱动程序仅对特定的设备添加。上层的过滤驱动程序在功能驱动程序之上,下层过滤驱动程序在功能驱动程序之下。这种层次结构可以使I/O请求过程更加明了。I/O管理器发送的IRP,先被送到设备堆栈的上层过滤器驱动程序(FIDO),它可以根据要求决定IRP的处理方式,是沿着设备栈继续向下传,或者做另外的处理。每一层程序都可以决定如何处理IRP。高层的驱动程序可以把请求划分成更简单的请求并传递给下层驱动程序。中间层次的驱动程序进一步处理请求,将一个IRP中的请求划分为若干个小的请求,并传给下层驱动程序。最后,最底层的驱动程序与硬件打交道。我们应该知道,一些IRP在到达总线程序之前,在设备传递过程中可能就被过滤掉了。设备分配设备类型type设备标识符:deviceid设备状态:等待/不等待忙/闲指向控制器表的指针重复执行次数或时间设备队列的队首指针DCT1DCT2DCTn设备控制表集合设备分配中的数据结构设备控制表DCT(c)系统设备表SDT控制器标识符:controllerid控制器状态:忙/闲与控制器连接的通道表指针控制器队列的队首指针控制器队列的队尾指针通道标识符:channelid通道状态:忙/闲与通道连接的控制器表首址通道队列的队首指针通道队列的队尾指针(a)控制器表COCT(b)通道表CHCT表目1…表目i…设备类设备标识符DCT驱动程序入口控制器控制表、通道控制表和系统设备表控制器表、通道表、系统设备表设备分配时应考虑的因素(1)独享设备:只能分配给一个用户或者进程使用。(2)共享设备:可分配给多个用户或者多个进程使用。(3)虚拟设备:可分配给多个用户或者多个进程使用,但需要在实际的物理设备上排序。设备的固有属性独占设备的分配程序1)分配设备2)分配控制器3)分配通道存在的问题:1)进程以物理设备请求资源2)单通道型,造成瓶颈基本的设备分配程序:以有I/O通道的系统为例设备分配程序的改进1)增加设备的独立性:进程采用逻辑名请求I/O。这样,可以从SDT(系统设备表)中轮询合适的同类设备。2)考虑多通路情况:对通道和控制器采用轮询的方式查找合适的设备。磁盘调度磁盘是一种共享设备,当有多个进程共同请求磁盘时,需要采用合理的磁盘调度方法,保证各个进程对磁盘的平均访问时间(寻道时间)最少。即磁盘调度的目标是使磁盘的平均寻道时间最少。下面介绍几种目前常用的磁盘调度算法:先来先服务(FCFS,FirstComeFirstServerd)它根据进程请求访问磁盘的先后次序进行调度。此算法优点是公平、简单,且每个进程的请求都能依次地得到处理,不会出现某一进程的请求长期得不到满足的情况。但此算法由于未对寻道进行优化,致使平均寻道时间可能较长。故FCFS算法仅适用于请求磁盘I/O的进程数目较少的场合。最短寻道时间优先(SSTF,ShortestSeekTimeFirst)其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。但这种算法不能保证平均寻道时间最短。扫描(SCAN)算法SCAN算法既能获得较好的寻道性能,又能防止“饥饿”现象,故被广泛用于大、中、小型机器和网络中的磁盘调度。该算法不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向。磁头逐步从外(里)向里(外)移动,直至再无更里面(外面)的
本文标题:windows操作系统之设备管理解析
链接地址:https://www.777doc.com/doc-1887046 .html