前言页 1
第1章 使命 1
1.1 90年代的操作系统 1
1.2 设计目标 3
1.2.1 可扩充性 4
1.2.2 可移植性 5
1.2.3 可靠性 6
1.2.4 兼容性 6
1.2.5 性能 7
1.3 队伍 8
1.4 这本书的其余部分 8
第2章 系统概述 9
2.1 Windows NT模型 9
2.1.1 客户/服务器模型 10
前言 11
2.1.2 对象模型 14
译者序 15
2.1.3 对称多处理 15
2.2 Windows NT结构 16
2.2.1 保护子系统 16
2.2.2 执行体 18
2.2.3.1 登记会话 20
2.2.3 简单浏览 20
2.2.3.2 环境子系统 21
2.2.3.3 本机服务 23
2.2.3.4 对象 24
2.2.3.5 虚拟内存 25
2.2.3.6 I/O和文件系统 26
2.3 附加的Windows NT结构 27
2.3.1 国际化 28
2.3.1.1 地方性 28
2.3.1.2 Unicode代码集 29
2.3.2 结构化异常处理 31
2.4 小结 33
第3章 对象管理程序与对象安全性 35
3.1 NT执行体对象 35
3.1.1 使用对象 36
3.1.1.1 基于文件的模型 37
3.1.1.2 NT对象模型 38
3.1.2 对象结构 39
3.1.3 对象类型 41
3.2 管理对象 42
3.2.1 对象名 42
3.2.1.1 对象目录 43
3.2.1.2 对象域 45
3.2.1.3 符号连接 46
3.2.2 对象句柄 47
3.2.2.1 对象保留 48
3.2.2.2 资源记帐 49
3.2.3 对象方法 50
3.3 保护对象 52
3.3.1 存取令牌 53
3.3.2 存取控制表 54
3.3.3 综合考虑 55
3.4 小结 57
4.1 什么是进程 58
第4章 进程与线程 58
4.1.1 地址空间 59
4.1.2 资源集 60
4.1.3 进程对象 61
4.2 什么是线程 62
4.2.1 多任务和多处理 63
4.2.2 多线程 65
4.2.3 线程对象 67
4.2.4 同步 69
4.2.5 报警和异步过程调用 71
4.3.1 环境子系统要求 72
4.3 进程结构 72
4.3.2 本机进程结构 76
4.3.2.1 管理客户进程 76
4.3.2.2 防止误用 77
4.4 小结 78
第5章 WINDOWS与保护子系统 79
5.1 保护子系统综述 80
5.1.1 为什么使用客户/服务器模型? 81
5.1.1.1 提供多种环境 82
5.1.1.2 内存保护 85
5.1.2 性能考虑 86
5.2 和Windows NT子系统的相互作用 89
5.2.1 登录 90
5.2.2 运行应用程序 91
5.3 Win32子系统 93
5.3.1 32位API 94
5.3.2 结构 96
5.3.3 设计上的改变 97
5.4 MS-DOS和16位Windows API 100
5.4.1 虚拟DOS机器(VDM) 102
5.4.2 Win32上的Windows(WOW) 104
5.5 利用本地过程调用(LPC)功能传递消息 106
5.5.1 端口对象 106
5.5.2.1 将消息拷贝到端口 108
5.5.2 LPC消息传递的种类 108
5.5.2.2 在共享内存中传递消息 109
5.5.2.3 回调 110
5.5.2.4 快速LPC 111
5.6 小结 112
第6章 虚拟内存管理程序 114
6.1 虚拟内存 115
6.2 用户态的性能 118
6.2.1 管理内存 118
6.2.2 共享内存 120
6.2.2.1 段、视口和被映射的文件 121
6.2.2.2 段对象 123
6.2.3 保护内存 124
6.2.3.1 进程专用内存 124
6.2.3.2 共享内存 126
6.3 虚拟内存的实现 127
6.3.1 地址空间 128
6.3.2 页面调度 129
6.3.2.1 页面调度机制 129
6.3.2.2 页面调度策略和工作集 133
6.3.3 页帧数据库 135
6.3.4 虚拟地址描述符 138
6.3.5 多处理考虑 139
6.4 小结 140
6.3.6 可移植性考虑 140
第7章 内核 142
7.1 概述 142
7.2 线程安排与调度 144
7.2.1 内核进程和线程对象 144
7.2.2 调度优先级 147
7.2.3 描述表切换 148
7.3 中断和异常处理 150
7.3.1 陷阱处理程序 151
7.3.2.1 中断类型和优先级 152
7.3.2 中断调度 152
7.3.2.2 中断处理 154
7.3.2.3 软件中断 155
7.3.3 异常调度 158
7.3.4 系统服务调度 160
7.4 多处理器同步 161
7.4.1 内核同步 162
7.4.2 执行体同步 163
7.5 电源故障恢复 166
7.6 小结 167
第8章 输入/输出系统 168
8.1.1 I/O系统部件 169
8.1 NT I/O综述 169
8.1.2 设计特点 170
8.1.2.1 NT目标模型 170
8.1.2.2 统一的驱动程序模型 172
8.1.2.3 异步操作 174
8.1.2.4 映射文件I/O和文件高速缓存 175
8.2 I/O处理 176
8.2.1 文件对象 177
8.2.2 对单层驱动程序的I/O请求 179
8.2.2.1 排队I/O请求 179
8.2.2.2 服务于一个中断 180
8.2.2.3 完成I/O请求 183
8.2.3 对分层驱动程序的I/O请求 185
8.2.4 使用异步I/O的考虑 187
8.3 分层驱动模型 190
8.3.1 驱动程序的结构 190
8.3.2 驱动程序对象和设备对象 191
8.3.3 I/O请求包 193
8.3.4 增加分层驱动程序 194
8.3.5 驱动程序开发中的问题 195
8.3.5.1 多处理 195
8.3.5.2 电源故障恢复 197
8.4 小结 198
第9章 网络 200
9.1.1 历史 201
9.1 背影 201
9.1.2 OSI参考模型 202
9.2 内装网络 205
9.2.1 网络API 205
9.2.2 内装网络组成 208
9.2.2.1 转发程序 208
9.2.2.2 服务器 210
9.2.3 名字分解 211
9.3.1 在用户态存取远程文件系统 213
9.3.1.1 WNet API的多供应者路由器 213
9.3 开放式结构 213
9.3.1.2 Win32文件I/O的多UNC供应者 215
9.3.2 传输协议 217
9.3.3 网络驱动程序的NDIS环境 219
9.4 分布式应用程序环境 220
9.4.1 远程过程调用 221
9.4.2 命名管道 224
9.5 公司范围的联网和分布式安全性 225
9.6 小结 229
后记 230
词汇表 233
参考书目提要 254