频道栏目
读书频道 > 系统 > windows > Windows内核原理与实现
6.1.3 Windows I/O 系统结构
2013-05-18 16:14:47     我来说两句
收藏   我要投稿

本文所属图书 > Windows内核原理与实现

本书从操作系统原理的角度,详细解析了Windows如何实现现代操作系统的各个关键部件,包括进程、线程、物理内存和虚拟内存的管理,Windows中的同步和并发性支持,以及Windows的I/O模型。在介绍这些关键部件时,本...  立即去当当网订购

图6.4显示了Windows 操作系统中的I/O 系统结构。Windows 的I/O 系统由5 个部分组成:I/O 管理器、即插即用管理器、电源管理器、WMI例程,以及设备驱动程序。其中I/O 管理器是整个I/O 系统的核心,它定义了一个非常通用的框架,允许各种功能的设备驱动程序容纳于其中。WRK包含有I/O 管理器的绝大部分代码,位于base\ntos\io\iomgr目录下。


 

I/O 管理器除了支持与设备相关的驱动程序以外,它也允许与设备无关的驱动程序加入到内核中。这一类驱动程序并不操纵任何硬件设备,它们进入到内核中以后,将变成内核的一部分,一旦经过 I/O 管理器的初始化,便与内核融为一体。因此,设备驱动程序也是内核扩展的一种形式。在本章后面我们将会看到这一类驱动程序是如何工作的。

Windows 设备驱动程序可以直接访问硬件,或者通过硬件抽象层(HAL)访问硬件。正如第2 章所介绍,HAL实际上将不同平台之间的差异隐藏了起来,向操作系统提供一组例程,允许操作系统的内核在多种体系结构下工作。这也同样适用于设备驱动程序,因此,设备驱动程序可以调用HAL中的例程。但对于HAL未涵盖的硬件特性,设备驱动程序可以直接操纵设备控制器,以完成其功能。

自Windows 2000(也包括Windows 98/Me)开始,Microsoft 定义了设备驱动程序的模型,称为 WDM(Windows Driver Model)。WDM驱动程序除了遵循I/O 管理器规定的驱动程序框架,还增加了对 Windows 即插即用(Plug and Play ,简称 PnP )、电源管理以及WMI(Windows Management Instrumentation ,Windows 管理规范)的支持:

•  Windows 定义了即插即用设备的管理框架,即插即用管理器与一种称为总线驱动程序(bus driver)的驱动程序一起协作,以便在检测到一个设备加入或移除时,加载或卸载该设备的驱动程序,而且,设备的硬件资源,比如I/O 端口地址、中断向量等,也可以实现自动择优分配。

•  电源管理器也是Windows I/O系统的一部分,负责指示设备驱动程序执行电源状态的变化。Windows 的电源管理建立在ACPI(Advanced Configuration and Power Interface,高级配置和电源接口)规范的基础上。

•  一组WMI例程。严格来讲,WMI是系统的管理机制,而非I/O 机制。WMI定义了一个通用的事件报告框架,它采用提供者-消费者模型,将提供事件和使用事件分离开。Windows 实现了WMI框架的管理功能,并提供了相应的 API 供系统模块或应用程序实现提供者或消费者的功能。I/O 系统包含一个特殊的WMI提供者(称为WDMWMI提供者)。设备驱动程序通过响应特定类型的I/O 请求,以及调用一组WMI例程,可以向WMI提供数据或者接收命令。由于WMI与I/O 系统相对独立,因此本章后文的讨论基本上不涉及WMI。关于WMI中的内核日志记录器,以及如何利用记录下来的内核事件进行系统性能分析,请分别参考2.5.3节和9.3节。

Windows 的I/O 系统不仅提供了对硬件设备的灵活控制,而且也允许多个驱动程序协同完成I/O 任务,这是Windows 的层次驱动程序模型,或者称为分层的驱动程序模型。当I/O 管理器接到一个I/O 请求时,它可以将该请求传递给一个设备栈。位于栈顶的驱动程序首先处理I/O 请求,然后依次将其向下传递,直到该 I/O 请求被完成。通常,与硬件关联的驱动程序位于设备栈的底端,它们直接驱动硬件设备来完成 I/O 任务。这种分层模型带来了极大的灵活性,每个驱动程序只需关注自己的职责,而不必包揽I/O 请求的完整处理过程。

Windows I/O系统非常依赖注册表,例如,设备与驱动程序的很多配置信息都保存在注册表中,包括与硬件有关的一些描述信息,以及驱动程序初始化所需要的信息等。注册表是由Windows 内核中的配置管理器来实现的。在本章中,我们只是简单地认为注册表是一个全局的信息仓库。关于注册表和配置管理器的详细描述,请参考2.5.2 节。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:6.1.2 I/O 软件技术
下一篇:6.2 I/O 管理器
相关文章
图文推荐
排行
热门
最新书评
文章
下载
读书
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站