操作系统原理

Preview:

DESCRIPTION

操作系统原理. principles of operating systems. 作者申明. 本版内容的著作权为作者所有。因为教学目的使用本版内容时,请注明所用资料来自本网站或由本作者发送,并保留作者版权标记“  200 7 孟静制作 版权所有”。将本版内容用于其他目的前,须征得作者同意。. 操作系统原理. 第一章 概论 第二章 CPU 管理 第三章 内存管理 第四章 文件系统 第五章 设备管理 第六章 进程通信 第七章 分布式、并行和网络操作系统 第八章 性能和设计. 第五章 设备管理. 5.1 设备管理概述 - PowerPoint PPT Presentation

Citation preview

操作系统原理

principles of operating systems

2007年 8月 孟静制作 版权所有 2

作者申明

本版内容的著作权为作者所有。因为教学目的使用本版内容时,请注明所用资料来自本网站或由本作者发送,并保留作者版权标记“ 2007 孟静制作 版权所有”。将本版内容用于其他目的前,须征得作者同意。

2007年 8月 孟静制作 版权所有 4

操作系统原理第一章 概论第二章 CPU 管理第三章 内存管理第四章 文件系统第五章 设备管理第六章 进程通信第七章 分布式、并行和网络操作系统第八章 性能和设计

第五章 设备管理 5.1 设备管理概述 5.2 简单 UNIX 设备管理实例分析 5.3 OS 设备管理原理通述 5.4 Windows 设备管理实例分析 5.5 本章小结

第五章 设备管理

2007年 8月 孟静制作 版权所有 7

I/O 在计算机中的重要地位 :I/O 速度是导致并发技术的直接原

因, I/O 设备多杂也是操作系统所管资源多杂的主要原因

I/O 性能是系统总体性能的重要决定因素、重要表现指标和常见瓶颈之一

I/O 能力和特点是现代计算机系统分类的重要依据

2007年 8月 孟静制作 版权所有 8

5.1 设备管理概述 5.1.1 计算机外部设备的定义与分类 5.1.2 外部设备硬件接口特性 5.1.3 用户对外设的使用要求 5.1.4 操作系统设备管理功能的任务

回章首

2007年 8月 孟静制作 版权所有 9

5.1.1 计算机外部设备的定义与分类1. 按设备作用可分为输入输出设备 ( 字符设备 )

和外存设备 ( 块设备 )2. 其他分类方法

按输入输出的另一端( Partner )分类 按是否交互分类 按数据传输率分类 按主被动 I/O 进行分类 按是否可并发共享

回节首

2007年 8月 孟静制作 版权所有 10

图 5.1 外设分类

2007年 8月 孟静制作 版权所有 11

表 5.1 外设分类

2007年 8月 孟静制作 版权所有 12

5.1.2 外部设备硬件接口特性5.1.2.1 设备与控制器的功能关系5.1.2.2 控制器与 CPU( 或通道 ) 间的接口5.1.2.3 设备与控制器间的接口5.1.2.4 I/O 连接模式 ( 及其发展 ) 总述

2007年 8月 孟静制作 版权所有 13

5.1.2 外部设备硬件接口特性图 5.3 主机与外设间的最简单最基本的连接方

式图 5.4 PC 连接图 5.5 通道连接图 5.6 服务器连接

回节首

2007年 8月 孟静制作 版权所有 14

图 5.3 主机与外设间最简单最基本连接

2007年 8月 孟静制作 版权所有 15

图 5.4 PC 连接

2007年 8月 孟静制作 版权所有 16

图 5.5 通道连接

2007年 8月 孟静制作 版权所有 17

图 5.6 服务器连接

2007年 8月 孟静制作 版权所有 18

5.1.2.1 设备与控制器的功能关系外设电子部分完成以下工作 :

( 端口 ) 地址译码 接口寄存器的设备方读写 A\D,D\A 转换 实现设备内部硬件缓冲存储、数据加工、 DMA 等在使主机与设备相连接这一点上,使主机与设备的相

互适应范围大控制多台设备

2007年 8月 孟静制作 版权所有 19

5.1.2.2 控制器与 CPU( 或通道 ) 间接口1. 接口寄存器

( 图 5.7 控制器 I/O 过程 ) ( 表 5.2IBM PC的 I/O 地址和中断向量 )

2. 接口缓冲区

2007年 8月 孟静制作 版权所有 20

图 5.7 控制器 I/O 过程

2007年 8月 孟静制作 版权所有 21

表 5.2IBM PC的 I/O 地址和中断向量

2007年 8月 孟静制作 版权所有 22

5.1.2.3 设备与控制器间接口图 5.8 I/O 数据的硬件流程设备命令为什么要夹在正常输出数据中 ?

(1) 是给设备的命令,控制器并不识别它们,通过数据接口寄存器传送就可以不经控制器处理而直接传送给设备,而通过控制接口寄存器传送的应是给控制器的命令

(2) 设备命令条数多,且多是带参数的,控制接口寄存器容纳不了

2007年 8月 孟静制作 版权所有 23

图 5.8 I/O 数据的硬件流程

2007年 8月 孟静制作 版权所有 24

5.1.2.4 I/O 连接模式 ( 及其发展 ) 总述最基本连接的特点 缺点 : 不通用,效率低

优点 : 代价小 ,实现简单 ,成本低廉改善着眼点

(1) 使 CPU脱离 I/O 的负担、减轻 CPU 的负担(2)提高设备利用率:脱机 -> 假脱机,交叉访问,等(3) 在设备与主机的硬连接上引入设备控制器、总线

具体的 4种改善途径:一是提高 I/O 设备本身的绝对速度或改善相对速度二是减少或缓解速差三是通过并发、并行使 CPU 不等待 I/O四 :使 CPU尽量不负担 I/O 操作 ,如DMA/ 通道 /外围

机等

2007年 8月 孟静制作 版权所有 25

I/O 连接成分或技术( 8 种): · CPU ·高速缓冲存储器 ·主存储器 · CPU 、存储器与 I/O 间的总线 · I/O 控制器或 I/O 通道及其中所采取的缓冲技

术、设备完成技术、 DMA 技术、 非编程式 I/O技术

· I/O 设备及其与主机间的三种连接方式· I/O软件的速度· I/O软件使用 I/O 设备的效率

2007年 8月 孟静制作 版权所有 26

图 5.9 I/O连接技术发展关系图

2007年 8月 孟静制作 版权所有 27

5.1.3 用户对外设的使用要求1.希望使用最方便的设备命名、操作类型和操作

单位2. 程序对设备独立3.效率和利用率4.安全正确地使用保证5. 对设备的系统管理方面,要求了解设备的(动态)配置和装卸、设备使用情况

6. 代价、成本、价格 回节首

2007年 8月 孟静制作 版权所有 28

程序对设备的独立性程序会随着设备的变化而变化,体现在两方面:

(1) 口地址出现在用户可执行目标程序中,在同一个程序的不同次执行中,使用的同一个设备,但这个设备在这不同次执行中的 I/O 口地址不同

(2) 在同一个程序的不同次执行中,所需要使用的设备是不同的

解决办法:A.当不同次执行需要使用不同设备时,在执行前先修改并重编译用户程序

B. 设备的口地址和符号名都不出现在用户可执行目标程序中,当不同次执行需要使用不同设备时,使用设备重定向功能来指定本次执行所需要的设备

2007年 8月 孟静制作 版权所有 29

5.1.4 操作系统设备管理功能的任务(1) 负责登记系统的设备,并跟踪登记这些设备

的使用情况和状态(2) 提供和实现方便的用户界面(上接口)(3) 实现效率和利用率(4) 采用各种技术,来提供设备的正确和安全使

用,提供设备保护(5) 以最小代价和最高性能实现上述任务

回节首

2007年 8月 孟静制作 版权所有 30

界面具有以下性质:①向用户和用户程序提供设备符号名(逻辑名),自动实现从设备符号名到设备 I/O 口地址间的转换(映射),并负责相应的设备分配和回收工作

②提供设备高级逻辑操作,自动将这些逻辑操作转化为最终的实际物理操作

③提供设备管理与文件系统的统一接口,并向用户程序提供设备重定向功能,以保证程序对不同设备和文件的独立性

④该界面要有方便的系统管理手段

2007年 8月 孟静制作 版权所有 31

实现保护的方式:①掩盖细节的高级接口②命名与权限管理③只有管态下的程序(即特权指令)才能直接

使用设备硬件接口,即对相应 I/O 地址的直接读写列入特权指令范围,这是硬件实现的

2007年 8月 孟静制作 版权所有 32

5.2 简单 UNIX 设备管理实例分析 5.2.1 用户界面 5.2.2 内部实现过程和结构

回节首

2007年 8月 孟静制作 版权所有 33

5.2.1 简单 UNIX 用户界面1. 设备命名与操作 ( 设备特别文件 )2. 标准输入输出和重定向3. 系统调用级的标准输入输出 (图 5.10 )

2007年 8月 孟静制作 版权所有 34

比较 :

在操作级,要打印机/dev/pt1 打印一个文件 f1

cat f1 >/dev/pt1 或 cp f1/dev/pt1

在编程级,要在程序中往打印机 /dev/pt1 上打印" HELLO” fd=open(“/dev/pt1”); write(“hello”); close(fd);

2007年 8月 孟静制作 版权所有 35

重定向的例子 :用户在启动 AP1 时用了重定向功能如用" AP1 > /dev/prt3"来启动 AP1,那么程序 AP1此次执行所用的标准输出设备就

是 /dev/prt3 ,即 3号打印机

2007年 8月 孟静制作 版权所有 36

图 5.10I/O 代码 :从源程序 (库 )到EXE(SC)

2007年 8月 孟静制作 版权所有 37

5.2.2 内部实现过程和结构1. 程序启动时如何打开和重定向标准输入输出设

备 ( 图 5.11,5.12 UNIX I/O 实现机制总瞰图 )

2. 系统调用“打开设备”的内部实现过程 ( 图 5.13)

3. 系统调用“读 /写设备”的内部实现过程 ( 图5.14,5.15)

4. 对以上诸过程的分析 ( 图 5.16)

2007年 8月 孟静制作 版权所有 38

图 5.11 UNIX I/O 实现机制总粗

2007年 8月 孟静制作 版权所有 39

图 5.11 UNIX I/O 实现机制总细

2007年 8月 孟静制作 版权所有 40

图 5.12 标准重定向的实现

2007年 8月 孟静制作 版权所有 41

图 5.13 设备开关表

2007年 8月 孟静制作 版权所有 42

图 5.14 读设备

2007年 8月 孟静制作 版权所有 43

图 5.15 写设备

2007年 8月 孟静制作 版权所有 44

图 5.16 5.2.1节内容总结

2007年 8月 孟静制作 版权所有 47

5.3 操作系统设备管理原理通述 5.3.1 OS 设备管理用户界面通述 5.3.2 OS 设备管理内部实现结构通述 5.3.3 OS 设备管理内部实现过程通述 5.3.4 速度匹配专题 1: 设备完成技术、同异步 IO 5.3.5 速度匹配技术专题讨论 2:缓冲技术 5.3.6 设备分配与共享专题 :独占、共享、虚拟设备 5.3.7 速度匹配专题 3:联机、脱机和假脱机技术 5.3.8 非编程 I/O专题:DMA 、通道等 5.3.9 设备驱动程序

回章首

2007年 8月 孟静制作 版权所有 48

5.3.1 OS 设备管理用户界面通述(1) 设备命名(2)逻辑操作(3) 程序对设备的独立性(4) 使用户了解设备使用情况(5) 接口中的保护

回节首

2007年 8月 孟静制作 版权所有 49

5.3.2 OS 设备管理内部实现总体结构

两层 :设备无关层

( 独立层 )设备相关层

( 驱动层 )思想依据 :

可移植性可扩充性

四层 :设备中断处理程序设备驱动程序与设备无关的操作

系统软件用户级软件

回节首

2007年 8月 孟静制作 版权所有 50

图 5.17 OS设备管理功能总体分层

2007年 8月 孟静制作 版权所有 51

1. 中断层 中断层的主要工作有: (1) 检查状态 (2) 需要时的后续驱动 (3) 可能要改变有关进程状态 中断即异步中的同步技术

2007年 8月 孟静制作 版权所有 52

2. 驱动层 (1) 包括操作系统中所有设备驱动程序 (2) 驱动程序中的代码是设备硬件相关的 (3) 每个设备驱动程序处理一种设备类型 (4) 一个设备驱动程序有多个子程序组成 , 每个

子程序实施一个或一组物理操作驱动层具体工作过程

2007年 8月 孟静制作 版权所有 53

驱动层的具体工作过程(1) 确定是否实施物理操作(2) 确定发出什么物理操作(3) 实施物理操作(4) (后处理)监督物理操作的正确执行和等待物理操作的完成 (冻结与非冻结 )

(5) 中断时被调用的驱动层的物理操作后续处理策略 :

①检查结果状态和传送结果数据②可能的错误处理 ( 指冻结的情况 ) ③可能的唤醒④可能的下一次 I/O 操作的启动,或因无请求而冻结

2007年 8月 孟静制作 版权所有 54

3.独立层 (无关层 )(1) 设备命名与映射 ,设备保护 ,分配或释放独占设备 , 挂起与调度

(2) 缓冲及对驱动层的调用 (3)释放设备、错误报告、返回用户层或中断层

2007年 8月 孟静制作 版权所有 55

第一版表 5.3 进程对设备的两种等待

在 open中 在 r/w中在无关层中发生 在相关层中发生因设备在为其它进程忙而等

因设备在为本进程忙而等

唤醒意味着设备为另一个进程忙完,而开始为本进程忙

唤醒则意味着设备为本进程完成上一 I /O操作,开始为本进程下一 I /O操作服务

2007年 8月 孟静制作 版权所有 56

4. 用户空间层 /用户级软件 /用户空间 I/O软件

例子: (1) 库 (2) 假脱机

2007年 8月 孟静制作 版权所有 57

5.3.3 OS 设备管理内部实现过程通述

2007年 8月 孟静制作 版权所有 58

图 5.18 I/O 过程

2007年 8月 孟静制作 版权所有 59

5.3.4 速度匹配专题 1: 设备完成技术、同异步 IO

四种设备完成技术等待 I/O 指令(空等指令)I/O测试指令(循环检测( polling))中断异步 I/O 操作不检测

回节首

2007年 8月 孟静制作 版权所有 60

1. 等待 I/O 指令(空等指令)一条 I/O 指令的整个持续期间, CPU 一直被锁住,直到数据传送完成,该机器指令才算执行完

该过程是完全同步的缺点 :CPU 和设备都常处于空等

2007年 8月 孟静制作 版权所有 61

2.I/O测试指令(循环检测)轮询( polling)主要问题 : 确定隔多长时间测试一次设备标志

2007年 8月 孟静制作 版权所有 62

3. 中断驱动的 I/O优点:

可以实现“异步中的同步” 、完全的异步、程序间最大程度的并发

与测试式并发相比,它将设备空等时间减到最少缺点:

操作系统对每次中断处理的开销

2007年 8月 孟静制作 版权所有 63

4.异步 I/O 操作异步同步异步中的同步完全异步

2007年 8月 孟静制作 版权所有 64

5. 不检测例子:对位映象视频缓冲区的输出“ 不检测”,实际上在每次访存(访问视频缓

存)内部还是检测的(而非在指令级)

2007年 8月 孟静制作 版权所有 65

5.3.5 速度匹配专题 2: 缓冲技术缓冲五种缓冲区缓冲技术的有效性前提缓冲目的和作用细析缓冲的实现(单、双、多缓存的选择问题)

回节首

2007年 8月 孟静制作 版权所有 66

五种缓冲区(1) 在 CPU 和内存间的 CACHE(2) 设在 I/O 设备或控制器内部的纯硬件缓冲

区,如打印机内部的硬缓(3) 操作系统的内存缓冲区,主要是 I/O 缓冲 (4) 用户程序内自设的缓冲区(5) 脱机与假脱机技术本质上也属缓冲技术,即为慢速 I/O 设备在外存开设的缓冲区

2007年 8月 孟静制作 版权所有 67

操作系统的缓冲 用户程序中的缓冲用户程序内的串行是操作系统采用的

技术同步实现方式:中

用户程序内并发是用户程序中采用

的技术同步实现方式:测

试技术

2007年 8月 孟静制作 版权所有 68

缓冲技术的有效性前提(1) 快方的快是阵发性 (包括突发性与间歇性 ) 的快,而不是持续性的快(2) 访问局部性,即局部的数据被连续多次访问

2007年 8月 孟静制作 版权所有 69

缓冲目的和作用细析(1)减缓纯粹的等待,如无中断前的单双多缓冲

区(2) 在已通过引入中断技术完全消除了相互等待

的前提下,进一步减少中断次数和降低程序响应时间:如无DMA 前的盘控制器硬缓冲区

(3) 在已通过引入中断技术完全消除了相互等待的前提下,提高设备速度 (效率 ) ,如采用了DMA后的盘控制器硬缓

(4)降低程序执行时间,提高异步(并发)程度,如操作系统缓冲区

2007年 8月 孟静制作 版权所有 70

5.3.6 设备分配与共享专题 :独占 /共享 / 虚拟

计算机系统中的外设按是否可并发共享使用分为独占设备共享设备

操作系统的设备分配方式1. 设备的独占分配方式2. 设备共享技术 (如 :磁盘 )3.虚拟设备技术 (假脱机技术 )

回节首

2007年 8月 孟静制作 版权所有 71

虚拟设备技术 (假脱机技术 )虚拟设备技术 (假脱机技术 ) 的好处

①用户程序对慢速独占设备的独占时间大大缩短了,提高了慢速独占设备的利用率

②用户程序本身的执行时间大大缩短了 ,提高了系统吞吐量和所有资源的利用率

例① 打印机的假脱机奴才②网络的假脱机奴才

2007年 8月 孟静制作 版权所有 72

虚拟设备技术 (假脱机技术 ) 例一种典型的假脱机设备:宽行打印机

1.创建一个取名奴才 (daemon) 的特别进程,和一个叫做假脱机目录 (spooling directory) 的特别目录

2. 为了打印一个文件,一个进程首先生成要打印的整个文件,把它放入假脱机目录中

3.奴才是唯一获准使用打印机特别文件的进程,以打印那个目录里的文件

通过网络转移文件常常利用的网络奴才 1. 为了把一个文件发往某处,用户送它到网络假脱

机目录里 2. 网络奴才取出它来传递

2007年 8月 孟静制作 版权所有 73

5.3.7 速度匹配专题 3联机 / 脱机 / 假脱机

联机脱机假脱机并不是所有设备都适用于这三种 I/O 方式,这涉

及到“ I/O 是否可从程序中分离”

回节首

2007年 8月 孟静制作 版权所有 74

5.3.8 非编程 I/O 专题讨论: DMA 、通道等

1.编程式 I/O 与非编程式 I/O2.DMA3.I/O 处理机和通道4. 外围机 ( 前端机 )5.SMP( 对称式多处理机 ) 系统和多计算机系统

回节首

2007年 8月 孟静制作 版权所有 75

5.3.8.1 编程式 I/O 与非编程式 I/O 比较

编程式 I/OCPU 对外设的操作事

事亲自进行缺点:资源利用率低

非编程式 I/O“让 CPU从 I/O 过程

细节负担中解脱出来”通过提供辅助硬件加大

I/O 操作单位,减少操作、中断次数,提高资源利用率

2007年 8月 孟静制作 版权所有 76

直接内存存取( DMA)DMA 实现

(图 5.19DMA 的实现机制) ( 图 5.20 DAM 的实现过程 )

DMA 的评价和改善DMA 实现中的两大问题 :①为什么控制器要自备内部缓冲区?

②为什么要交错访问 ?( 图交叉访问 )

5.3.8.2 DMA

2007年 8月 孟静制作 版权所有 77

图 5.19DMA 的实现机制

2007年 8月 孟静制作 版权所有 78

图 5.20 DAM 的实现过程

2007年 8月 孟静制作 版权所有 79

第一版图 5.21 交叉访问

2007年 8月 孟静制作 版权所有 80

5.3.8.3 I/O 处理机和通道(1) 通道定义与作用

工作内容 :启动、结束处理、错误处理、 DMA 、代码转换、格式化等

例子 :LP11 行打机打印一 60 行 80列的页(2) 通道工作原理 : 通道程序与通道指令、通道类型

图 5.21 通道的工作过程(3) 操作系统的通道管理功能和相应的结构模型

功能 :①产生通道程序②管理 I/O 控制块队列的建立,放入,队满时的挂起及相应的唤醒等

结构模型:五六十年代的,六十年代以来(4) 对通道的评价

2007年 8月 孟静制作 版权所有 81

图 5.21 通道工作过程

2007年 8月 孟静制作 版权所有 82

五六十年代的结构模型的功能组成 ①I/O 交通管制程序 ,该功能现在属于无关层 ②I/O调度程序,该功能现在属于无关层 ③I/O 设备处理程序(即现在的设备驱动程序

(包括中断处理程序))该功能属现在的设备相关层

2007年 8月 孟静制作 版权所有 83

(4) 对通道的评价 ①与一般的多处理机系统相比,由于专用而并

行性受到限制 ②通道只是一个处理机,不是一个完整的计算

机系统,完整的计算机系统可以承担更多的 I/O工作

③I/O 处理机一般不改变信息,而只是传送信息

2007年 8月 孟静制作 版权所有 84

5.3.9 设备驱动程序例析5.3.9.1 驱动—核心间接口标准例析 :DDK/DDI

5.3.9.2 驱动程序例析 : 显示器、键盘、打印机5.3.9.3 驱动程序例析 : 电源管理和低功耗

回节首

2007年 8月 孟静制作 版权所有 85

5.3.9 .1驱动—核心间接口标准例析 :DDK/DDI五节 :

第 1节 (Section 1): 一个驱动程序需包括的数据定义第 2节:驱动程序入口点例程,包括设备开关表中定义

的函数,以及中断处理子例程、初始化子例程第 3节:描述了驱动程序可以调用的核心例程第 4节:驱动程序可以使用的核心数据结构第 5节:包括驱动程序可能需要的核心#define语句

三个部分:驱动程序 -核心 : 包括驱动程序入口点和核心支持例程驱动程序-硬件:该部分描述用于支持在驱动程序与设

备间的交互的那些例程驱动程序- boot:处理一个驱动程序如何进入核心

2007年 8月 孟静制作 版权所有 86

5.3.8.2 驱动程序例析 : 显示器 /键盘 /打印机

1.键盘驱动程序的功能 :5.4.2节中所述的驱动层的通常工作对键入数据进行加工处理将键入数据送至显示器回显

2.打印机等

2007年 8月 孟静制作 版权所有 89

5.4.1 Windows XP/2003/2000 设备管理( I/O 子系统)总述

5.4.2 Windows XP/2003/2000 设备管理功能的程序组件

5.4.3 Windows XP/2003/2000 设备管理功能的外存数据文件

5.4.4 Windows XP/2003/2000 设备管理功能的内存数据结构

5.4.5 Windows XP/2003/2000 的典型I/O 过程(细)

5.4 Windows 设备管理

回节首

2007年 8月 孟静制作 版权所有 90

5.4.1 Windows 设备管理 (I/O 子系统 )总述

5.4.1.1 Windows XP/2003/2000 设备管理的目标与特点

5.4.1.2 Windows XP/2003/2000 设备管理的总体结构、接口、过程

2007年 8月 孟静制作 版权所有 91

5.4.1.1 Windows 设备管理的目标与特点

2007年 8月 孟静制作 版权所有 92

Windows 设备管理的特点:(1) 支持进程级异步 I/O 操作(2) 允许系统管理员能动态地向系统中增加设备或从

系统中删除设备(3) 提供服务程序 ,允许用高级语言编写驱动程序。(4)映像文件 I/O ,支持多个可装卸文件系统,新的

缓冲区实现方式(借用虚存机制)等(5) 分层驱动程序模型,提供可扩充性,使设备的动态增删更加容易

(6) 设备管理功能把各种 I/O 资源作为对象来管理

2007年 8月 孟静制作 版权所有 93

5.4.1.2Windows 设备管理总体结构 /接口 /过程

2007年 8月 孟静制作 版权所有 94

图 5.22 Windows 设备管理总体结构

2007年 8月 孟静制作 版权所有 95

图 5.23 Windows I/O 过程总瞰

2007年 8月 孟静制作 版权所有 96

5.4.2.1 I/O 管理器5.4.2.2 设备驱动程序5.4.2.3 PnP 管理器5.4.2.4 WMI(WDM WMI provider )5.4.2.5 HAL5.4.2.6 电源管理器

5.4.2 Windows 设备管理功能的程序组件

回节首

2007年 8月 孟静制作 版权所有 97

5.4.2.1 I/O 管理器 1.建立、撤消与传送 I/O 请求包 (IRP,I/O

request packet ) 2. 定义设备驱动程序与 Windows 间接口标准

与结构模型 3.提供不同驱动程序的公用代码,由驱动程序调

用来执行其 I/O 处理,从而使每个驱动程序更简单更紧凑。

4.提供灵活的 I/O 服务(例如异步 I/O 服务),允许环境子系统(例如Windows和 POSIX )来实现它们各自的 I/O函数,使开发者能建立可伸缩的高性能服务器应用程序。

2007年 8月 孟静制作 版权所有 98

5.4.2.2 设备驱动程序Windows 设备驱动程序的功能Windows 设备驱动程序存在形式和结构

(.sys)Windows XP/2000 设备驱动程序分类和层次

2007年 8月 孟静制作 版权所有 99

Windows 设备驱动程序存在形式和结构 .sys

1. 一个初始化例程( an initialization routine )2. 一个增加设备例程( an add-device routine )3. 一组分支例程( a set of dispatch routines )4. 一个启动 I/O 例程( a start I/O routine )5. 一个中断服务例程( interrupt service

routine,ISR )6. 一个中断服务 DPC 例程( interrupt-servicing

DPC routine )7. 一或多个 I/O 完成例程( more I/O completion

routine )8. 一个停止 I/O 例程( a cancel I/O routne )9. 一个卸载例程( an unload routine )10. 一个系统关机通知例程( a system shutdown

notification routine )11.错误日志例程( error-logging routines )

2007年 8月 孟静制作 版权所有 100

Windows 设备驱动程序分类和层次 1. 用户方式驱动程序和核心方式驱动程序:用户方式

的驱动程序有虚拟设备驱动程序( VDD, virtual device driver )、打印机驱动程序等。核心方式的驱动程序有文件系统驱动程序、即插即用( Plug and Play )驱动程序、非即插即用驱动程序(又称为核心扩展)等。

2.在WDM 模型中 (Windows驱动程序模型 ,Windows Driver Model )中, 划分为总线驱动程序( bus driver )、功能驱动程序( function driver )、过滤器驱动程序( filter driver )

类驱动程序( class driver )、端口驱动程序( port driver )、 小端口驱动程序( miniprot driver )

2007年 8月 孟静制作 版权所有 101

5.4.3 Windows 设备管理的外存数据文件

5.4.3.1 注册表5.4.3.2 INF 文件5.4.3.3 CAT 文件与设备签名5.4.3.4 设备标识符DIID、 VID、 PID 等

2007年 8月 孟静制作 版权所有 102

5.4.4 Windows 设备管理的内存数据结构5.4.4.1 IRP 及其栈、主功能代码和辅功能代码5.4.4.2 设备对象,驱动程序对象 ,devnode

与设备树5.4.4.3 设备名

2007年 8月 孟静制作 版权所有 103

5.4.5 Windows 典型 I/O 过程(细)

5.4.5.1 I/O 类型 : 同步 /异步 I/O, FAST I/O ,映像 I/O 与缓冲 I/O ,集中 /分散 I/O

5.4.5.2 单层驱动背景下的 I/O 过程 :APC与DPC

5.4.5.3 多层驱动背景下的 I/O 过程5.4.5.4 驱动程序与设备的安装过程、设备枚举

5.4.5.5 驱动程序与设备安装与卸载、装入、启动、初始化、打开之间的区别与关系

5.4.5.6 专题:Windows驱动程序开发与测试工具

2007年 8月 孟静制作 版权所有 104

图 5.24 Windows 单层驱动程序 I/O 过程

2007年 8月 孟静制作 版权所有 105

图 5.25 Windows 多层驱动程序 I/O 过程

2007年 8月 孟静制作 版权所有 106

图 5.27a 用DIID 在注册表中为设备找驱动

2007年 8月 孟静制作 版权所有 107

图 5.27b 用DIID 在注册表中为设备找驱动