- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows内核原理与实现
曹飞
目录
Windows I/O系统
在现代操作系统中,I/O(Input/Output是计算机完成各种功能的一个重要方面
硬件层面上,处理器支持的接口技术是计算机系统能够协作运行的基础
从软件层面上,操作系统必须提供相应的接口来操纵这些设备的控制器
应用程序不直接访问外部设备,而是通过操作系统来完成对设备的访问
提供了一套可扩展的I/O处理框架,从而允许第三方硬件厂商编写专门的系统模块来控制其硬件设备
目录
I/O概述
I/O管理器
即插即用管理器
设备驱动管理
I/O处理
I/O硬件技术
I/O设备可以分为块设备和字符设备
处理器通过总线和控制器打交道,不直接操纵设备
设备控制器有一些状态寄存器或者命令寄存器
处理器通过I/O端口或者内存映射I/O的方式访问控制器
控制器通过状态寄存器或中断方式来通知处理器
大量动态数据交换的设备,采用直接内存访问(DMA,Direct Memory Access)
是一种控制器,既可以整个系统共享一个DMA控制器,也可以让一个设备独占一个DMA控制器
需要处理器指定所读写数据在内存中的地址、数量,以及传输方向(读/写)
I/O软件技术
要求
I/O软件的模型应该是设备无关的
针对I/O设备的软件模型必须有足够的通用性
设备的软件组件能够融入到系统的I/O处理框架中
驱动程序
设备的软件组件通常称为设备驱动程序
与设备的通信是同步或异步方式
缓冲区管理
共享和独占设备
和操作系统互补
设备驱动程序为操作系统提供了必要的访问硬件设备的能力
同时也依赖于操作系统提供的软件功能,比如内存管理、错误处理、同步互斥机制
Windows I/O系统结构
I/O管理器
整个I/O系统的核心,定义了一个非常通用的框架,允许各种功能的设备驱动程序容纳于其中
即插即用管理器
在检测到一个设备加入或移除时,加载或卸载该设备的驱动程序
电源管理器
负责指示设备驱动程序执行电源状态的变化
WMI(Windows管理规范)例程
系统的管理机制,而非I/O机制,定义了一个通用的事件报告框架,它采用提供者-消费者模型,将提供事件和使用事件分离开
设备驱动程序
设备程序是操作设备的内核模块
I/O管理器
I/O管理器是Windows I/O系统的核心组件,它负责建立起基本的I/O框架结构,允许各种类型的驱动程序纳入到这一框架结构中
一旦一个驱动程序被加载并且其初始化历程被执行则该驱动程序就已经融入内核
代码进入系统地址空间,获得初始执行权
负责I/O请求的流程管理
驱动程序对象代表了一个设备驱动程序被加载到系统中以后的内部表示
设备对象代表了系统中的一个设备,它既可以是物理设备,也可以是逻辑设备
文件对象代表了一个设备对象被打开后的实例
I/O管理器
驱动程序对象
驱动程序初始化时,它会创建一个驱动程序对象
驱动程序对象对应至少一个设备对象
同一个驱动程序的设备对象用单链表连接起来
包含一组处理例程
设备对象
每个设备对象代表了系统中的一个设备
个设备对象都必定有一个为它负责的驱动程序
设备对象描述了一个特定设备的状态信息
同一个设备栈的设备对象链接成一个双链表
驱动程序对象和设备对象都是内核中的对象
I/O管理器
文件对象
代表一个设备对象被打开后的实例
文件对象是I/O操作的基本抽象,它将应用程序对设备的操作抽象成了对文件数据的读或写动作
真正的数据文件存储在设备对象中,多个文件对象可以共享一个设备对象实现数据共享,文件对象只是代表一个设备对象的一个已打开的实例
CreatFile(C中的fopen)来获得文件对象并得到一个句柄
ReadFile或ReadFileEx和WriteFile或WriteFileEx来读写文件对象
CloseHandle来关闭文件对象,通过引用计数来维护其生命周期
即插即用管理器
即插即用(PnP)管理器也是I/O系统的一部分,它负责在内核中对硬件设备的即插即用提供支持
自动检测设备的插入和移除,既可能在系统引导时,也可能在系统运行过程中
动态地分配硬件资源,包括中断向量、I/O端口、I/O寄存器以及与总线有关的资源,以避免设备之间产生资源冲突
指示I/O管理器为设备加载正确的驱动程序,必要时通过一个用户模式的应用程序允许用户指定或搜索驱动程序
向内核及应用程序提供有关设备插入或移除的通知
即插即用管理器
系统总线也必须提供即插即用能力
在系统引导阶段即插即用的支持主要是由计算机的BIOS来完成
支持即插即用的设备能够标识它们自身,并报告它们的资源需求,当系统要进行资源重新分配时,这些设备可以接受新的资源分配
在操作系统中,即插即用能力主要通过设备的驱动程序来体现;总线的驱动程序和附载在总线上的设备的驱动程序相互协作,完成设备的列举和自动配置工作
即插即
文档评论(0)