本书讲述当代计算机操作系统的原理,并具体分析操作系统原理在 Windows Server 2003中的实现技术和方法,将抽象的原理与具体的实例相结合,既有设计思想精要的提炼,又有具体实现细节的分析。\r\n 本书保留了第1版将操作系统的一般原理与分析Windows内部体系结构相结合的特色,并根据Windows操作系统的发展趋势,增加了对Windows Server 2003体系结构的介绍。\r\n 本书由国内知名大学操作系统的主讲教师编写,适合作为高等院校计算机和电子工程相关专业的操作系统教材,也是一本用于设计、开发基于Windows的应用软件,以及编写Windows操作系统驱动程序的重要参考书,还是在Windows Server 2003平台上进行设计开发的技术人员的必备参考书。\r\n \r\n
序(一)\r\n序(二)\r\n编者的话\r\n第1章 操作系统概述 \r\n 1.1 计算机系统概观 \r\n 1.1.1 计算机的发展与分类 \r\n 1.1.2 计算机系统 \r\n 1.2 操作系统的概念 \r\n 1.2.1 操作系统的地位 \r\n 1.2.2 操作系统的定义 \r\n 1.2.3 操作系统的特征 \r\n 1.3 操作系统的功能 \r\n 1.4 操作系统的用户接口 \r\n 1.4.1 用户界面 \r\n 1.4.2 程序设计用户接口—系统调用 \r\n 1.5 操作系统简史 \r\n 1.6 操作系统分类 \r\n 1.7 研究操作系统的几种观点 \r\n 1.8 Windows操作系统的发展历程 \r\n 1.8.1 Windows的开发过程 \r\n 1.8.2 Windows的版本 \r\n 1.8.3 Windows 早期版本的技术特点 \r\n 1.8.4 Windows 95和Windows 98 \r\n 1.8.5 Windows NT操作系统的技术特点 \r\n 1.8.6 Windows Embedded家族 \r\n 1.8.7 Windows 服务器 \r\n 1.8.8 Windows Server 2003 \r\n 1.8.9 Windows XP \r\n 1.8.10 Windows开发的艰辛与规模 \r\n 1.8.11 微软公司下一代客户端Windows操作系统Longhorn \r\n 习题 \r\n第2章 Windows Server 2003的体系结构 \r\n 2.1 操作系统的设计 \r\n 2.1.1 操作系统的设计目标 \r\n 2.1.2 操作系统的设计阶段 \r\n 2.1.3 操作系统的结构问题 \r\n 2.1.4 操作系统的结构设计 \r\n 2.1.5 近十年来操作系统结构的发展 \r\n 2.2 Windows Server 2003的操作系统模型 \r\n 2.2.1 Windows Server 2003的构成 \r\n 2.2.2 Windows Server 2003的可移植性 \r\n 2.2.3 多处理机和集群支持 \r\n 2.3 Windows Server 2003的体系结构 \r\n 2.3.1 内核 \r\n 2.3.2 硬件抽象层 \r\n 2.3.3 执行体 \r\n 2.3.4 设备驱动程序 \r\n 2.3.5 环境子系统和子系统动态链接库 \r\n 2.3.6 系统支持进程 \r\n 2.3.7 安全考虑 \r\n 2.4 Windows Server 2003的系统机制 \r\n 2.4.1 陷阱调度 \r\n 2.4.2 对象管理器 \r\n 2.4.3 同步 \r\n 2.4.4 本地过程调用 \r\n 2.4.5 系统工作线程 \r\n 2.5 Windows Server 2003的注册表 \r\n 2.5.1 注册表的数据类型 \r\n 2.5.2 注册表的逻辑结构 \r\n 2.6 Longhorn的体系结构 \r\n 习题 \r\n第3章 进程和处理机管理 \r\n 3.1 进程 \r\n 3.1.1 程序的顺序执行和并发执行 \r\n 3.1.2 进程的定义和描述 \r\n 3.1.3 进程的状态转换 \r\n 3.2 进程控制 \r\n 3.2.1 进程的创建和退出 \r\n 3.2.2 进程的阻塞和唤醒 \r\n 3.2.3 Windows Server 2003进程管理 \r\n 3.3 线程 \r\n 3.3.1 线程的概念 \r\n 3.3.2 进程和线程的比较 \r\n 3.3.3 Windows Server 2003线程 \r\n 3.4 进程互斥和进程同步 \r\n 3.4.1 互斥算法 \r\n 3.4.2 信号量 \r\n 3.4.3 经典进程同步问题 \r\n 3.4.4 管程 \r\n 3.4.5 Windows Server 2003的进程互斥和同步 \r\n 3.5 进程间通信 \r\n 3.5.1 Windows Server 2003的信号 \r\n 3.5.2 Windows Server 2003基于文件映射的共享存储区 \r\n 3.5.3 Windows Server 2003管道 \r\n 3.5.4 Windows Server 2003邮件槽 \r\n 3.5.5 套接字 \r\n 3.6 死锁问题 \r\n 3.6.1 概述 \r\n 3.6.2 死锁的预防 \r\n 3.6.3 死锁的检测 \r\n 3.6.4 死锁的避免 \r\n 3.6.5 解决死锁问题的综合方法 \r\n 3.7 处理机调度概述 \r\n 3.7.1 处理机调度的类型 \r\n 3.7.2 调度的性能准则 \r\n 3.7.3 进程调度器 \r\n 3.8 调度算法 \r\n 3.8.1 先来先服务算法 \r\n 3.8.2 最短作业优先算法 \r\n 3.8.3 时间片轮转算法 \r\n 3.8.4 多级队列算法 \r\n 3.8.5 优先级算法 \r\n 3.8.6 多级反馈队列算法 \r\n 3.9 Windows Server 2003的线程调度 \r\n 3.9.1 Windows Server 2003的线程调度特征 \r\n 3.9.2 Win32的线程调度应用编程接口 \r\n 3.9.3 线程优先级 \r\n 3.9.4 线程时间配额 \r\n 3.9.5 调度器数据结构 \r\n 3.9.6 调度策略 \r\n 3.9.7 线程优先级提升 \r\n 3.9.8 对称多处理机系统上的线程调度 \r\n 3.9.9 空闲线程 \r\n 习题 \r\n第4章 存储管理 \r\n 4.1 内存管理的基本原理 \r\n 4.1.1 地址空间和存储空间 \r\n 4.1.2 单一连续存储管理 \r\n 4.1.3 分区式存储管理 \r\n 4.1.4 覆盖和交换技术 \r\n 4.1.5 页式存储管理 \r\n 4.1.6 段式存储管理 \r\n 4.1.7 段页式存储管理 \r\n 4.1.8 页式和段式系统的区别 \r\n 4.2 虚拟存储器 \r\n 4.2.1 局部性原理 \r\n 4.2.2 虚拟存储器的基本原理 \r\n 4.2.3 请求分页系统 \r\n 4.2.4 页面调度策略 \r\n 4.2.5 工作集 \r\n 4.2.6 请求分段系统 \r\n 4.3 磁盘存储管理 \r\n 4.3.1 磁盘结构 \r\n 4.3.2 磁盘的种类 \r\n 4.3.3 磁盘访问时间 \r\n 4.3.4 磁盘调度算法 \r\n 4.3.5 磁盘调度算法的选择 \r\n 4.3.6 磁盘格式化 \r\n 4.3.7 廉价冗余磁盘阵列 \r\n 4.3.8 存储可靠性的实现 \r\n 4.4 高速缓存管理 \r\n 4.4.1 磁盘高速缓存的形式 \r\n 4.4.2 数据交付 \r\n 4.4.3 置换算法 \r\n 4.4.4 周期性写回磁盘 \r\n 4.4.5 提高磁盘I/O速度的其他方法 \r\n 4.5 Windows Server 2003内存管理 \r\n 4.5.1 32位地址空间的布局 \r\n 4.5.2 32位地址转换机制 \r\n 4.5.3 对64位地址模式的支持 \r\n 4.5.4 体系结构兼容性设计 \r\n 4.5.5 用户空间内存分配方式 \r\n 4.5.6 系统内存分配 \r\n 4.5.7 缺页处理 \r\n 4.5.8 工作集 \r\n 4.5.9 物理内存管理 \r\n 4.5.10 其他内存相关机制 \r\n 4.6 Windows Server 2003外存管理 \r\n 4.6.1 Windows Server 2003存储的演变 \r\n 4.6.2 分区 \r\n 4.6.3 驱动程序 \r\n 4.6.4 多分区卷管理 \r\n 4.6.5 卷名字空间 \r\n 4.7 Windows Server 2003高速缓存管理 \r\n 4.7.1 高速缓存的结构 \r\n 4.7.2 高速缓存的大小 \r\n 4.7.3 高速缓存的数据结构 \r\n 4.7.4 高速缓存的操作 \r\n 4.7.5 高速缓存支持例程 \r\n 4.8 小结 \r\n 习题 \r\n第5章 文件系统 \r\n 5.1 文件概念与实现 \r\n……\r\n 5.2 目录概念与实现 \r\n 5.3 文件系统 \r\n 5.4 Windows文件系统概述 \r\n 5.5 NTFS文件系统 \r\n 5.6 下一代Windows文件系统 \r\n 习题 \r\n第6章 设备管理与I/O系统 \r\n 6.1 设备管理概述 \r\n 6.2 设备管理的实现技术 \r\n 6.3 I/O软件的结构 \r\n 6.4 Windows I/O系统的结构 \r\n 6.5 Windows I/O系统的核心数据结构 \r\n 6.6 Windows的I/O处理 \r\n 6.7 小结 \r\n 习题 \r\n第7章 Windows环境下的程序设计 \r\n 7.1 Windows 应用程序设计模式 \r\n 7.2 Windows应用程序的基本结构 \r\n 7.3 结构化异常处理 \r\n 7.4 动态链接库 \r\n 7.5 Windows驱动程序模型 \r\n 7.6 WDM驱动程序的编程实例 \r\n 习题 \r\n参考文献 \r\n索引\r\n
序一
杨芙清
进入新世纪以来, 中国的高技术产业, 特别是信息产业持续快速发展, 信息技术已经成为21世纪经济发展的驱动力.
信息是客观事物状态和运动特征的一种普遍形式. 人类抽象的经验和知识正逐步由软件予以精确地体现, 而软件是人类知识的固化, 是知识经济的基本表征, 它已成为信息时代的新型"物理设施".
软件是信息化的核心. 国民经济和国防建设. 社会发展. 人民生活都离不开软件, 软件无处不在. 软件产业是增长最快的朝阳产业, 是具有高附加值. 高投入/高产出. 无污染. 低能耗的绿色产业. 软. 件产业关系到国家经济安全和文化安全, 体现了国家综合实力, 是决定21世纪国际竞争地位的战略性产业.
计算机操作系统正是软件技术含量大. 附加值高的部分, 是软件系统的核心, 是软件基础运行平台的主要成分.
在操作系统的商业产品市场上, 微软公司在20世纪80年代初期为IBM公司的个人计算机配置了PC-DOS操作系统, 几年之后, 又推出了Windows操作系统. 由于Windows采用了图形界面, 易学易用, 又辅之良好的市场策略, 因此它逐渐占据了个人计算机市场的主要地位, 并成为主要的操作系统产品.
本书是在美国微软公司提供Windows操作系统内部技术资料的基础上编写的讲述计算机操作系统原理的教科书. 参加本书编写工作的作者均是国内一些重点高等院校从事计算机操作系统课程教学和科研的老师. 这些老师把在操作系统课程中的长期教学经验和科研积累同分析Windows操作系统内部技术原理结合起来, 写作完成了这本操作系统教科书.
本书第1版于2001年8月出版以来受到了读者的欢迎, 读者提出了很多意见, 并且希望本书能够不断修订, 以便及时准确地反映Windows操作系统技术的新发展和新变化. 在美国微软公司和微软亚洲研究院的支持下, 本书的编写小组在与美国微软技术人员共同分析研究Windows Server2003内核源代码的基础上, 完成了本书第2版的写作工作. 本书的内容反映了微软公司对Windows Server 2003内核的改进, 并以Windows Server 2003为实例来介绍Windows操作系统的基本原理.
我相信, 本书会像其第1版一样, 对使用Windows操作系统的读者有所帮助.
中国科学院院士北京大学教授
杨芙清
2004年9月
序二
沈向洋
随着摩尔定律成为信息时代的"摩西诫言", 计算机硬件的生产商们不断加快产品更新换代的步伐, 计算机操作系统也不再仅仅为了控制和管理计算机系统内各种硬件和软件资源, 而是越来越被赋予新的含义, 向着网络化. 智能化和安全化方向发展.
网络的发展正在引导着计算机以一般用户所难以想象的方式(分布式)转型--办公桌面上的台式电脑的各种功能正被分发. 转移并融化到我们掌上的PDA. 腕上的手表. 驾乘的汽车甚至是储存食品的冷柜之中. 几年以后, 我们甚至可能发现自己找不到那台曾经熟悉的电脑主机了, 然而它的影响却又无所不在. XML及Web服务技术的发展使软件集成程度达到了前所未有的水平:分散. 组块化的应用程序通过因特网互相连接并与其他大型应用程序相连接. 操作系统需要通过这些XMLWeb服务提供基于行业标准构建的可再次使用的组件, 使开发人员可以在企业内部集成应用程序, 跨网络连接合作伙伴和客户.
这是一个充满信息的时代, 几乎每一个人都被各种或有用或无用(通常情况下)的信息所包围. 各种应用软件实现了不同程度的信息处理能力, 但更加智能化的信息处理需要靠操作系统来协调实现. 计算机能够根据人类的信息需求, 变被动寻找信息为主动截获信息. 通过持续提升的硬件性能和更加卓有成效的控制软件, 计算机将实现更加智能化的用户界面和语音技术. 基于更加智能的操作系统和更加灵活的计算形式的新的计算机将真正成为我们事业和生活的伴侣.
计算机安全性正前所未有地得到广泛的重视. 内联网(Intranet). 外联网(Extranet)和因特网(Internet)把计算机站点连接起来, 超越了传统的局域网(LAN), 病毒和计算机犯罪层出不穷, 个人用户越来越关注其隐私. 操作系统需要保证Web服务器的安全性, 以保证用户在Web上安全地执行业务. 操作系统需要为其他应用软件提供引擎以提高可靠性, 并减少由常见的编程错误引起的安全漏洞. 计算机将基于更可靠的个人认证系统(例如指纹. 声控或虹膜), 这样便能最大程度地保障用户的隐私不受侵犯, 为安全筑起一条绝难逾越的长城.
一本好的操作系统教材, 除了要有系统的基础理论介绍, 还应该结合当前主流操作系统的实例, 配合专门的实验环节, 这样不仅能反应最新的技术动态, 更能有效地帮助学生理解和掌握复杂的操作系统的工作原理. 微软公司作为一个主要的操作系统生产商, 为操作系统的发展作出了巨大贡献. 微软亚洲研究院一直极为关注中国教育事业的发展. 微软亚洲研究院作为"教育部-微软长城计划"的具体实施者, 与国内60余所高校在教材编写. 义务授课等方面开展了广泛的学术交流与合作. 以微软最新操作系统Windows Server 2003为内核技术的教材已经在2004年6月编写完毕. 从这个意义上来讲, Windows作为操作系统教学的实例, 结合完整的理论和实验教材, 已经发展成为一个非常理想的操作系统教学平台. 而这一系列教材的出版是离不开中国高校操作系统教师的努力和微软公司的支持的.
微软亚洲研究院成立五年多以来, 除了从事世界一流的基础研究之外, 我们一直把支持中国高校的课程和教材建设. 帮助中国培养高水平的计算机人才作为非常重要的工作. 2004年1月15日, 中国教育部授予微软亚洲研究院"捐资助教特殊贡献奖", 以感谢微软公司在支持中国教育事业发展过程中所做出的贡献. 我欣喜地看到, 由来自中国著名高校的操作系统专家组成的编写小组, 经过不断地努力, 从2000年全国操作系统课程研讨会上的倡议, 到2001年去微软公司了解Windows XP源代码, 再到2003年在微软公司Windows组的设计师指导下阅读Windows Server2003的源代码. 在短短的3年多时间内, 终于把编写一系列适合高校操作系统教学的中文Windows操作系统教材的设想变成了现实.
浏览全书, 我感到这本书不仅包含了对操作系统原理的系统讲解, 更重要的是紧密融入了微软最新的WindowsServer 2003的核心技术, 其中还配有大量相关的原理图. 实例. 实验等内容. 书中绝大部分原理图都是几位老师在仔细阅读源代码并和Windows组的设计师一一讨论后结合自身丰富的教学经验绘制而成的. 本书确实是一本目前难得的最新Windows现代操作系统的实例讲解教材.
最后, 我想借此机会代表比尔·盖茨先生及微软公司表示对支持中国教育事业的长期承诺和诚意. 我们希望今后能和中国高校一起交流计算机技术的最新动态, 写出更多这样的好教材, 为中国信息产业的腾飞尽一份力.
微软亚洲研究院院长
2004年9月