1、2022年11月6日星期日第第21讲设备管理讲设备管理 2.设备管理的基本方法 为了解决 I/O 设备速度过慢、效率不高的问题,设备管理中还需要引人缓冲技术,减少I/O 操作的等待时间。虽然有些 I/O 设备或控制器内部已有硬件缓冲(如打印机内的硬件缓冲,磁盘控制器上的缓冲),但操作系统在内存开设 I/O 缓冲区和文件系统缓冲区仍然十分必要。多任务系统中,由于系统中 I/O 设备的资源是有限的,并不是每个进程随时都可以得到这 些资源。为了使用某个 I/O 设备,进程首先要向设备管理程序提出申请,然后由设备管理程序 按一定算法进行分配。如果进程的申请没有成功它就必须在等待队列中等待。4.5.2
2、I/O 系统结构与 I/O 管理器 I/O 管理器是系统的核心,将“应用程序和系统组件与虚拟的、逻辑的和物理的设备 连接起来,支持设备驱动程序的基础设施。设备驱动程序通常为某一类特定类型的设备提供一个 I/O 接口。它接收来自 I/O 管理器传来的命令,并在完成命令后通知 I/O 管理器。PnP 管理器与 I/O 管理器和总线型驱动程序协同工作,检测并响应硬件添加与删除,硬件资源分配。电源管理器也通过与 I/O 管理器的协同工作,指导系统和各单独设备的电源状态转换 Windows 驱动程序模型(Windows driver model,WDM)注册表,存储了硬件设备的描述信息,以及驱动程序初
3、始化和配置信息 2.I/O 管理器 I/O 管理器是 I/O 系统的核心,定义一个有序的工作模型。在该模型中,I/O 请求被并交给设备驱动程序进行处理。在 Windows XP 中,整个 I/O 系统是由包(packet)驱动的,大多数 I/O 请求都是通过一个 I/O 请求包(I/O request packet,IRP)来表示的。IRP(I/O request packet,)是在每个阶段控制如何处理 I/O 操作的数据结构 IRP可以被从一个 I/O 系统组件传递到另一个 I/O 系统组件。这种设计使得单个应用程序线程可以并发地管理多个 I/O 请求。I/O 管理器创建 IRP,并将该
4、IRP 传递给相应的驱动程序。执行指定的操作,在完成操作后将 IRP 返回给 I/O 管理器,通知操作已完成,或 送到另一个驱动程序以进一步处理。驱动程序具有模块化的接口使得 I/O 管理器能够调用任何一个驱动程序,无须驱动程序数据结构或内部细节的特殊知识。驱动程序也可以通过 I/O 管理器来相 互调用,以完成 I/O 请求的分层的、独立的处理。4.5.3 设备驱动程序 Windows XP 支持多种类型设备驱动程序。一种常用的分类方法是将其分为两大类:内核模式驱动程序主要包括文件系统驱动程序、即插即 用驱动程序、非即插即用驱动程序等 用户模式驱动程序主要包括虚拟设备驱动程序和 Windows
5、 子系统打印驱动程序等。文件系统驱动程序:接受访问文件的请求,通过向大容量的存储设备或网络设备驱动 程序发送它们自己的、更为显式的请求,以此来满足所接收的 I/O 请求。即插即用驱动程序:与电源管理器和 PnP 管理器有关的设备驱动程序,包括大容量存储设备、视频适配器、输入设备和网络适配器的驱动程序。非即插即用驱动程序 为NT 编写的、可在 Windows XP 下工作,不支持电源管理和PnP 虚拟设备驱动程序:被用于支持 16 位的 MS-DOS 应用程序和 Win16 应用程序。Windows 子系统打印驱动程序:将与设备无关的图形请求转换成与打印机相关的命令,然后将这些命令转送到一个内核
6、模式的端口驱动程序 Windows 驱动程序模型(WDM)是微软公司为了应 对新的外设接口(如 USB、IEEE 1394 等)和新型外围设备不断出现而提出的一种驱动程序模 式。WDM 将驱动程序按层进行了划分,层与层之间独立,它旨在通过提供一种灵活的方式来 简化驱动程序的开发并降低其复杂性。驱动程序模型 WDM 包含了对电源管理、PnP 的支持,而且绝 大多数 PnP 驱动程序都遵从 WDM 规范。Windows 98、Windows Me、Windows 2000 和 Windows XP 都实现 WDM,驱动程序的源代码是兼容的,而且在多数情况下是二进制兼容的,从而保证了 WDM 驱动程
7、序的兼容性 WDM 驱动程序有以下 3 种类型:总线型驱动程序(bus driver):管理逻辑的或物理的总线,例如 PCMCIA、PCI、USB、IEEE 1394 等 功能型驱动程序(function driver):管理某一特定类型的设备。4.5.4 即插即用 由于一台 PC 配置多种外围设备,设备经常变动和更换,它们都要占用一定的系统资源,这可能导致硬件和软件上产生冲突,因此在系统中要正确配置,当设备撤除、添置和进行系统升级时,配置过程往往是一个困难的过程。为了改变这种状况,出现了即 插即用(PnP)技术。1.PnP 技术 PnP 技术规范是由微软、Intel、Compaq 等公司共同
8、提出的,它不依赖于特定的操作系统,也不依赖特定的总线结构。PnP 技术主要有以下特点:PnP 技术支持 I/O 设备的自动配置,使用户能够简单、方便地使用系统的扩充设备;PnP 技术减少了由制造商造成的种种用户限制,简化了硬件的跳线设置;利用 PnP 技术可以保存系统资源的配置参数和分配状态,有利于系统对整个 I/O 资源的分配和控制;PnP 技术在一定程度上具有热插入、热拼接功能。4.5.5 电源管理 1.ACPI 电源管理标准 电源管理的任务是检测系统或某个设备的工作状况,为它仍设定相应的电源能耗状态。电源管理应遵循 Intel、微软及 TOSHIBA 共同开发的 ACPI 标准(adva
9、nced configuration and power interface)。同 PnP 技术一样,电源管理也需要底层硬件正(BIOS)的支持 2.电源管理 Windows XP 的电源管理由电源管理器和设备驱动程序两部分组成。电源管理器是系统电源管理策略的所有者,因此整个系统的能耗状态转换由电源管理器决定,并调用相应设备的驱动程序来完成。电源管理器决定当前能耗状态的因素有系统活动状况、系统电源状况、应用程 序的关机或休眠请求、用户的操作和控制面板的电源设置等。工作状态等待状态 休眠状态 关机 (系统处于完全关闭状态,只有电源按钮保持微弱电流)4.6 Windows 网络管理 Windows
10、 XP 包含广泛的网络支持并且这些网络支持与 I/O 系统和 Windows API 集 成在一起。网络软件的 4 种基本类型是 1服务 2API 3协议 4网络适配器设备驱动程序 构成了一个网络栈。4.6.1 网络体系结构(1)Windows 套接字套接字是一类编程 API,它自 20 世纪 80 年代起成为 UNIX 系统在 Internet 上的通信标准。(2)命名管道和邮件槽(3)远程过程调用 远程过程调用(remote procedure call,RPC)是一个网络编程标准,主要应用于分布式计算环境。它建立在基本的网络 API(例如命名管道或 WinSock)基础之上,其目的是提供
11、另一 种 能在某种程度上将应用程序开发人员从网络编程的细节中解脱出来 的编程模型,即它 隐藏了网络实现的细节。(4)NetBIOS NetBIOS 同时支持可靠的面向连接的通信和不可靠的元连接的通信。但 Windows XP 对 NetBIOS 的支将是为了遗留下来的应用程序,即微软不提倡应用程序开发人员使用 NetBIOS,因为其他 的 API(如前面介绍的 WinSock 和命名管道)比 NetBIOS 更加灵活和便于移植(5)Web 访问 API为了便安开发 Internet 应用程序,Windows XP 提供了客户 Internet API 和服务器 Internet API 口应用
12、程序利用这些 API,无须掌握 Gopher、FTP 和 HTTP 等协议的复杂细节,就可以提供 和使用相应的服务(6)其他的网络 API Windows XP 还包含了其他一些网络 API,它们用得不是那么频繁,或它们建立在前面已经介绍的 API 之上 实时通信(realtime communication,RTC):Windows XP 提供了 RTC 客户 API,它使得 开发人员可以创建应用程序以建立集成的多模型通信。2.多重定向器与名称解析 应用程序可以通过两种方法来检查或访问远程机器上的资源:一种是使用 UNC(universal naming convention,通用命名协定)
13、标准与 Windows 函数直接访问远程资源,另一种是使用 WN et(Windows Networking)API 来列举所有计算机提供的可共享的计算机和资源。3.协议驱动程序 网络 API 驱动程瘦接受 API 请求,并将这些请求转换为底层网络协议的传输请求。API 驱动程序依赖内核模式的传输协议驱动程序进行实际的转换。将 API 与下层的网络协议分开的做法,使得整个网络体系结构十分灵活,因为它允许每个 API 使用不同的网络协议。Windows XP 包含的协议驱动程序主要有 TCP/IP 和 NWLink IPX/SPX/NetBIOS 兼容传输协议的驱动程 序,另外一些协议的驱动程序
14、是可选的 Windows XP 实现了这些传输协议的所有相关协议。4.NDIS 驱动程序 当一个协议驱动程序要按照其协议的格式从网络上读写消息时,必然要使用网络适配器。(2)拨号连接 拨号连接是指通过利用电话网络的设备连接到网络(Internet)。该设备可以是使用标准电 话线的调制解调器、使用高速 ISDN 线路的 ISDN 卡或者 X.25 网络。(3)虚拟专用网络连接 通过使用自动安装在计算机上的点对点隧道协议(point to point tunneling protocol,PPTP)或第二层隧道协议(layer 2 tunneling protocol,L2 TP),可以经由 In
15、ternet 或其他网络连接到远 程访问服务器来安全地访问网络资源 安全访问,就好像用户在使用专用网络一样。系统支持两种方式创建 VPN 连接。拨叫 ISP:VPN 连接首先呼叫 ISP。在建立连接之后,该连接将呼叫负责建立 PPTP 或L2TP 隧道的远程访问服务器,通过身份验证之后,就可以访问企业网络。直接连接到 Internet:已连接到 Internet 的用户使用 VPN 连接来拨号连接远程访问服务 器。(4)直接连接通过“网络连接”,可以使用串行电缆、直接并行(direct parallel)、电缆、调制解调器、ISDN 设备,或其他方法创建到另一台计算机的物理连接。(5)传入连接 通过创建传人连接,可将该计算机用作远程访问服务器。可以配置一个传入连接来接受下列连接类型:拨号(调制解调器、ISDN、X.25)、虚拟专用网(PPTP、L2TP)或者直接连接(串行、红外线)。2.网桥 在 网络连接 文件夹中,可以利用 网桥 实现 LAN 中多个网段的连接(通常情况下,一个网络有多个 LAN 段)。3.网络组件(1)客户端 Microsoft 网络客户端