当前: 首页 - 图书专区 - 现代操作系统(原书第3版)
现代操作系统(原书第3版)


  在线购买
Andrews Tanenbaum
978-7-111-25544-4
75.00

2009年07月01日
陈向群
计算机 > 操作系统 > 综合
Pearson Education Asia
2189
简体中文

Modern Operating Systems, 3E
教材









书中集中讨论了操作系统的基本原理,包括进程、线程、存储管理、文件系统、输入/输出、死锁等,同时还包含了有关计算机安全、多媒体操作系统、掌上计算机操作系统、微内核、多核处理机上的虚拟机以及操作系统设计等方面的内容。此外,还在第2版的基础上对部分习题进行了增删,更有助于读者学习和对知识的理解及掌握。
现代操作系统 (原书第3版)
Modern Operating Systems
Third Edition

(荷) Andrew S. Tanenbaum Vrije大学 著 陈向群 马洪兵 等译

Tanenbaum教授作为三个操作系统的设计师或联合设计师,具有长期设计开发操作系统的经验,从而把其对理论的深入理解和具体实践融入书中,使本书成为操作系统领域的经典之作。
在本书第3版中,作者深入讨论了许多主题,包括:进程、线程、存储管理、文件系统、I/O、死锁、接口设计、多媒体、性能权衡,以及有关操作系统设计的最新趋势。书中不仅涵盖了现代操作系统的原理和实践,而且特别关注了Linux操作系统、Windows Vista操作系统、嵌入式操作系统、实时操作系统以及多媒体操作系统。
本书特色
涉及Windows Vista以及最新的Linux/UNIX操作系统。
用一整章(第12章)的篇幅对用于移动设备的Symbian操作系统进行分析。
涵盖更多、更新的安全方面的内容。
重新组织内容,尽早论述关键抽象概念。
给出与未来操作系统发展有关的新研究成果。
更新和增加了编程练习。
在线操作系统练习(http://www.prenhall.com/tanenbaum/details.html)采用主流Windows操作系统以及开源工具。
包括操作系统模拟练习。

作者简介
Andrew S. Tanenbaum
拥有美国麻省理工学院的理学学士学位和加州大学伯克利分校的哲学博士学位,目前是荷兰阿姆斯特丹Vrije大学的计算机科学系教授。多年来,他在编译技术、操作系统、网络及局域分布式系统方面进行了大量的研究工作。目前,他专注于系统和安全方面的高级研究。他已经发表了近150篇论文,并在十几个国家做了有关操作系统的学术报告。Tanenbaum是ACM会员、IEEE资深会员、荷兰皇家艺术和科学学院院士,并由于“对计算领域,特别是计算机组织、网络和操作系统方面的教育所做的贡献”而获得2007年度IEEE James H. Mulligan, Jr.教育奖。他还入选了《世界名人录》。
第3版与第2版有很大的不同。首先,重新安排了章节,把中心材料安排到了本书的开始部分。对于
操作系统这一各种抽象的创建者,给予了更多的关注。对第1章进行了大量的更新,引入了所有的概念。
第2章涉及从CPU到多进程的抽象。第3章是关于物理内存到地址空间(虚拟内存)的抽象。第4章是关
于磁盘到文件的抽象。进程、虚拟地址空间以及文件是操作系统所呈现的关键概念,所以与以前版本相
比将这些章节安排在更为靠前的位置。
第1章在很多地方都进行了大量的修改和更新。例如,为那些只熟悉Java语言的读者安排了对C程序
设计语言和C运行时模式的介绍。
在第2章里,更新和扩充了有关线程的讨论,以反映它们的重要性。另外,还安排了一节关于IEEE
标准Pthread的讨论。
第3章讨论存储管理,已经重新进行了组织,用以强调操作系统的这一项关键功能,即为每个进程
提供虚拟地址空间的抽象。有关批处理系统存储管理的陈旧材料已经删去,对有关分页实现的部分进行
了更新,以便能够满足对已经很常见的大地址空间和速度方面管理的需要。
对第4章到第7章进行了更新,删去了陈旧材料,添加了一些新的材料。这些章中有关当前研究的小
节是全部重新写作的。此外,还增加了许多新的习题和程序练习。
更新了包括多核系统的第8章,增加了关于虚拟技术、虚拟机管理程序和虚拟机一节,并以VMware
为例。
对第9章进行了很大的修改和重新组织,纳入关于利用代码错误、恶意软件和对抗它们的大量新
材料。
第10章介绍Linux,这是原先第10章(UNIX和Linux)的修改版。显然,本章重点是Linux,增加了
大量的新材料。
涉及Windows Vista的第11章对原有的内容(关于Windows 2000)做了很大的修改,有关Windows
的内容用最新的材料进行了更新。
第12章是全新的。作者认为,尽管嵌入式操作系统远比用于PC和笔记本电脑中的操作系统要多,
但是,对于用于手机和PDA中的嵌入式操作系统,在很多教科书中还是被忽略了。本版弥补了这个缺憾,
对普遍用于智能手机的Symbian OS进行了广泛的讨论。
第13章是关于操作系统设计的,第2版的内容多数都保留了。
本书为教师提供了大量的教学辅助材料,可以在如下网站得到:www. prenhall. com/tanenbaum。网
站中包括PPT、学习操作系统的软件工具、学生实验、模拟程序,以及许多关于操作系统课程的材料。
采用本书的教师有必要访问该网站。
这一版得到了许多人的帮助。首先最重要的是编辑Tracy Dunkelberger。Tracy对本书不仅尽责而且超
出了其本职范围,如安排大量的评阅,协助处理所有的补充材料,处理合约,与出版社接洽,协调大量的
并发事务,设法使工作按时完成等。她还使我遵守一个严格的时间表,以保证本书按时出版。谢谢Tracy。
佐治亚理工学院的Ada Gavrilovska是Linux内核技术专家,他更新了第10章,从UNIX (重点在
FreeBSD) 转向了Linux,当然该章的许多内容对所有的UNIX系统也适用。在学生中Linux比FreeBSD更
普及,所以这是一个有意义的转变。
Microsoft公司的Dave Probert更新了第11章,从Windows 2000转向了Windows Vista,尽管两者存在
着相似之处,但它们之间还是有很大差别的。Dave对Windows技术有深刻的认识,并足以指出哪些地方
Microsoft做对了,哪些地方Microsoft做错了。由于Dave的工作,本书的质量有了很大提高。
Hope学院的Mike Jipping写作了有关Symbian OS 这一章。如果缺乏关于嵌入式实时系统的内容,
则会使本书存在重大缺憾,感谢Mike使本书免除了这个问题。在现实世界中,嵌入式实时系统变得越来
越重要,本章对这方面的内容提供了出色的论述。
与Ada、Dave和Mike都各自专注一章不同,科罗拉多大学Boulder分校的Shivakant Mishra更像是一
个分布式系统,他阅读和评述了许多章节,并为本书提供了大量的新习题和编程问题。
还值得提出的是Hugh Lauer。在我们询问他有关修改第2版的建议时,不曾想得到一份23页的报告。
本书的许多修改,包括对进程、地址空间和文件等抽象的着重强调,都是源于他的意见。
对那些以各种方式(从新论题建议到封面,细心阅读文稿,提供补充材料,贡献新习题等)给予支
持的其他人士,作者也不胜感激。这些人士是Steve Armstrong、Jeffrey Chastine、John Connelly、
Mischa Geldermans、Paul Gray、James Griffioen、Jorrit Herder、Michael Howard、Suraj Kothari、
Roger Kraft、Trudy Levine、John Masiyowski、Shivakant Mishra、Rudy Pait、Xiao Qin、Mark
Russinovich、Krishna Sivalingam、Leendert van Doorn和Ken Wong。
Prentice Hall的员工总是友好和乐于助人的,特别是负责生产的Irwin Zucker和Scott Disanno,以及
负责编辑的David Alick、ReeAnne Davies和Melinda Haggerty。
Barbara和Marvin像往常一样,保持着各自独特的美妙方式。当然,还要感谢付出了爱和耐心的
Suzanne。
Andrew S. Tanenbaum
出版者的话
译者序
前言
第1章 引论?????????????1
1.1 什么是操作系统??????????2
1.1.1 作为扩展机器的操作系统?????2
1.1.2 作为资源管理者的操作系统????3
1.2 操作系统的历史??????????4
1.2.1 第一代(1945~1955):真空管
和穿孔卡片??????????4
1.2.2 第二代(1955~1965):晶体管和
批处理系统??????????4
1.2.3 第三代(1965~1980):集成电路
芯片和多道程序设计??????6
1.2.4 第四代(1980年至今):个人
计算机????????????8
1.3 计算机硬件介绍?????????10
1.3.1 处理器???????????11
1.3.2 存储器???????????12
1.3.3 磁盘????????????14
1.3.4 磁带????????????15
1.3.5 I/O设备???????????15
1.3.6 总线????????????17
1.3.7 启动计算机?????????18
1.4 操作系统大观园?????????19
1.4.1 大型机操作系统????????19
1.4.2 服务器操作系统????????19
1.4.3 多处理器操作系统???????19
1.4.4 个人计算机操作系统??????19
1.4.5 掌上计算机操作系统??????19
1.4.6 嵌入式操作系统????????20
1.4.7 传感器节点操作系统??????20
1.4.8 实时操作系统?????????20
1.4.9 智能卡操作系统????????20
1.5 操作系统概念??????????21
1.5.1 进程????????????21
1.5.2 地址空间??????????22
1.5.3 文件????????????22
1.5.4 输入/输出??????????24
1.5.5 保护????????????24
1.5.6 shell ????????????24
1.5.7 个体重复系统发育???????25
1.6 系统调用????????????27
1.6.1 用于进程管理的系统调用????30
1.6.2 用于文件管理的系统调用????31
1.6.3 用于目录管理的系统调用????31
1.6.4 各种系统调用?????????33
1.6.5 Windows Win32 API ??????33
1.7 操作系统结构??????????34
1.7.1 单体系统??????????34
1.7.2 层次式系统?????????35
1.7.3 微内核???????????36
1.7.4 客户机-服务器模式??????37
1.7.5 虚拟机???????????38
1.7.6 外核????????????40
1.8 依靠C的世界??????????40
1.8.1 C语言????????????40
1.8.2 头文件???????????41
1.8.3 大型编程项目?????????41
1.8.4 运行模型??????????42
1.9 有关操作系统的研究???????42
1.10 本书其他部分概要????????43
1.11 公制单位???????????43
1.12 小结?????????????44
习题????????????????44
第2章 进程与线程??????????47
2.1 进程??????????????47
2.1.1 进程模型??????????47
2.1.2 创建进程??????????48
2.1.3 进程的终止?????????49
2.1.4 进程的层次结构????????50
2.1.5 进程的状态?????????50
2.1.6 进程的实现?????????51
2.1.7 多道程序设计模型???????52
2.2 线程??????????????53
2.2.1 线程的使用?????????53
2.2.2 经典的线程模型????????56
2.2.3 POSIX线程??????????59
2.2.4 在用户空间中实现线程?????59
2.2.5 在内核中实现线程???????62
2.2.6 混合实现??????????62
2.2.7 调度程序激活机制???????63
2.2.8 弹出式线程?????????63
2.2.9 使单线程代码多线程化?????64
2.3 进程间通信???????????66
2.3.1 竞争条件??????????66
2.3.2 临界区???????????67
2.3.3 忙等待的互斥?????????67
2.3.4 睡眠与唤醒?????????70
2.3.5 信号量???????????72
2.3.6 互斥量???????????74
2.3.7 管程????????????76
2.3.8 消息传递??????????80
2.3.9 屏障????????????81
2.4 调度??????????????82
2.4.1 调度介绍??????????82
2.4.2 批处理系统中的调度??????85
2.4.3 交互式系统中的调度??????87
2.4.4 实时系统中的调度???????90
2.4.5 策略和机制?????????90
2.4.6 线程调度??????????91
2.5 经典的IPC问题?????????92
2.5.1 哲学家就餐问题????????92
2.5.2 读者-写者问题????????94
2.6 有关进程和线程的研究??????95
2.7 小结??????????????95
习题????????????????95
第3章 存储管理???????????99
3.1 无存储器抽象??????????99
3.2 一种存储器抽象:地址空间????101
3.2.1 地址空间的概念???????101
3.2.2 交换技术??????????103
3.2.3 空闲内存管理????????104
3.3 虚拟内存???????????106
3.3.1 分页????????????107
3.3.2 页表????????????108
3.3.3 加速分页过程????????109
3.3.4 针对大内存的页表??????111
3.4 页面置换算法??????????113
3.4.1 最优页面置换算法??????114
3.4.2 最近未使用页面置换算法????114
3.4.3 先进先出页面置换算法?????115
3.4.4 第二次机会页面置换算法????115
3.4.5 时钟页面置换算法??????116
3.4.6 最近最少使用页面置换算法???116
3.4.7 用软件模拟LRU ???????117
3.4.8 工作集页面置换算法??????118
3.4.9 工作集时钟页面置换算法????120
3.4.10 页面置换算法小结??????121
3.5 分页系统中的设计问题??????121
3.5.1 局部分配策略与全局分配策略??121
3.5.2 负载控制??????????123
3.5.3 页面大小??????????123
3.5.4 分离的指令空间和数据空间???124
3.5.5 共享页面??????????124
3.5.6 共享库???????????125
3.5.7 内存映射文件????????126
3.5.8 清除策略??????????127
3.5.9 虚拟内存接口????????127
3.6 有关实现的问题?????????128
3.6.1 与分页有关的工作??????128
3.6.2 缺页中断处理????????128
3.6.3 指令备份??????????129
3.6.4 锁定内存中的页面??????129
3.6.5 后备存储??????????129
3.6.6 策略和机制的分离??????130
3.7 分段?????????????131
3.7.1 纯分段的实现????????133
3.7.2 分段和分页结合:MULTICS ??134
3.7.3 分段和分页结合:Intel Pentium ?135
3.8 有关存储管理的研究???????138
3.9 小结?????????????138
习题???????????????139
第4章 文件系统??????????143
4.1 文件?????????????144
4.1.1 文件命名??????????144
4.1.2 文件结构??????????145
4.1.3 文件类型??????????145
4.1.4 文件存取??????????147
4.1.5 文件属性??????????147
4.1.6 文件操作??????????148
4.1.7 使用文件系统调用的一个示例程序?148
4.2 目录?????????????150
4.2.1 一级目录系统????????150
4.2.2 层次目录系统????????150
4.2.3 路径名???????????150
4.2.4 目录操作??????????152
4.3 文件系统的实现?????????153
4.3.1 文件系统布局????????153
4.3.2 文件的实现?????????153
4.3.3 目录的实现?????????156
4.3.4 共享文件??????????158
4.3.5 日志结构文件系统??????159
4.3.6 日志文件系统????????160
4.3.7 虚拟文件系统????????161
4.4 文件系统管理和优化???????163
4.4.1 磁盘空间管理????????163
4.4.2 文件系统备份????????167
4.4.3 文件系统的一致性??????170
4.4.4 文件系统性能????????172
4.4.5 磁盘碎片整理????????174
4.5 文件系统实例??????????175
4.5.1 CD-ROM文件系统??????175
4.5.2 MS-DOS文件系统???????178
4.5.3 UNIX V7文件系统??????179
4.6 有关文件系统的研究???????181
4.7 小结?????????????181
习题???????????????182
第5章 输入/输出??????????184
5.1 I/O硬件原理??????????184
5.1.1 I/O设备???????????184
5.1.2 设备控制器?????????185
5.1.3 内存映射I/O ?????????185
5.1.4 直接存储器存取???????187
5.1.5 重温中断??????????189
5.2 I/O软件原理??????????191
5.2.1 I/O软件的目标????????191
5.2.2 程序控制I/O ?????????192
5.2.3 中断驱动I/O ?????????193
5.2.4 使用DMA的I/O????????194
5.3 I/O软件层次??????????194
5.3.1 中断处理程序????????194
5.3.2 设备驱动程序????????195
5.3.3 与设备无关的I/O软件?????197
5.3.4 用户空间的I/O软件??????200
5.4 盘??????????????201
5.4.1 盘的硬件??????????201
5.4.2 磁盘格式化?????????211
5.4.3 磁盘臂调度算法???????212
5.4.4 错误处理??????????214
5.4.5 稳定存储器?????????216
5.5 时钟?????????????218
5.5.1 时钟硬件??????????218
5.5.2 时钟软件??????????219
5.5.3 软定时器??????????220
5.6 用户界面:键盘、鼠标和监视器??221
5.6.1 输入软件??????????221
5.6.2 输出软件??????????224
5.7 瘦客户机???????????233
5.8 电源管理???????????235
5.8.1 硬件问题??????????235
5.8.2 操作系统问题????????236
5.8.3 应用程序问题????????239
5.9 有关输入/输出的研究???????239
5.10 小结?????????????240
习题???????????????241
第6章 死锁????????????244
6.1 资源?????????????244
6.1.1 可抢占资源和不可抢占资源???244
6.1.2 资源获取??????????245
6.2 死锁概述???????????246
6.2.1 资源死锁的条件???????246
6.2.2 死锁建模??????????246
6.3 鸵鸟算法???????????248
6.4 死锁检测和死锁恢复???????248
6.4.1 每种类型一个资源的死锁检测??249
6.4.2 每种类型多个资源的死锁检测??250
6.4.3 从死锁中恢复????????251
6.5 死锁避免???????????252
6.5.1 资源轨迹图?????????252
6.5.2 安全状态和不安全状态?????253
6.5.3 单个资源的银行家算法?????254
6.5.4 多个资源的银行家算法?????254
6.6 死锁预防???????????255
6.6.1 破坏互斥条件????????255
6.6.2 破坏占有和等待条件?????256
6.6.3 破坏不可抢占条件??????256
6.6.4 破坏环路等待条件??????256
6.7 其他问题???????????257
6.7.1 两阶段加锁?????????257
6.7.2 通信死锁??????????257
6.7.3 活锁????????????258
6.7.4 饥饿????????????259
6.8 有关死锁的研究?????????259
6.9 小结?????????????259
习题???????????????260
第7章 多媒体操作系统???????263
7.1 多媒体简介??????????263
7.2 多媒体文件??????????266
7.2.1 视频编码??????????266
7.2.2 音频编码??????????268
7.3 视频压缩???????????269
7.3.1 JPEG标准??????????269
7.3.2 MPEG标准?????????271
7.4 音频压缩???????????272
7.5 多媒体进程调度?????????274
7.5.1 调度同质进程????????275
7.5.2 一般实时调度????????275
7.5.3 速率单调调度????????276
7.5.4 最早最终时限优先调度?????277
7.6 多媒体文件系统范型???????278
7.6.1 VCR控制功能????????279
7.6.2 近似视频点播????????279
7.6.3 具有VCR功能的近似视频点播??281
7.7 文件存放???????????282
7.7.1 在单个磁盘上存放文件?????282
7.7.2 两个替代的文件组织策略????282
7.7.3 近似视频点播的文件存放????284
7.7.4 在单个磁盘上存放多个文件???285
7.7.5 在多个磁盘上存放文件?????287
7.8 高速缓存???????????288
7.8.1 块高速缓存?????????288
7.8.2 文件高速缓存????????289
7.9 多媒体磁盘调度?????????290
7.9.1 静态磁盘调度????????290
7.9.2 动态磁盘调度????????291
7.10 有关多媒体的研究???????292
7.11 小结?????????????292
习题???????????????293
第8章 多处理机系统????????295
8.1 多处理机???????????296
8.1.1 多处理机硬件????????296
8.1.2 多处理机操作系统类型?????301
8.1.3 多处理机同步????????303
8.1.4 多处理机调度????????306
8.2 多计算机???????????309
8.2.1 多计算机硬件????????309
8.2.2 低层通信软件????????312
8.2.3 用户层通信软件???????313
8.2.4 远程过程调用????????314
8.2.5 分布式共享存储器??????316
8.2.6 多计算机调度????????319
8.2.7 负载平衡??????????319
8.3 虚拟化????????????321
8.3.1 虚拟化的条件????????322
8.3.2 I型管理程序?????????322
8.3.3 II型管理程序????????323
8.3.4 准虚拟化??????????324
8.3.5 内存的虚拟化????????325
8.3.6 I/O设备的虚拟化???????326
8.3.7 虚拟工具??????????327
8.3.8 多核处理机上的虚拟机?????327
8.3.9 授权问题??????????327
8.4 分布式系统??????????327
8.4.1 网络硬件??????????329
8.4.2 网络服务和协议???????331
8.4.3 基于文档的中间件??????333
8.4.4 基于文件系统的中间件?????334
8.4.5 基于对象的中间件??????337
8.4.6 基于协作的中间件??????338
8.4.7 网格????????????341
8.5 有关多处理机系统的研究?????341
8.6 小结?????????????342
习题???????????????343
第9章 安全????????????346
9.1 环境安全???????????347
9.1.1 威胁????????????347
9.1.2 入侵者???????????347
9.1.3 数据意外遗失????????348
9.2 密码学原理??????????348
9.2.1 私钥加密技术????????349
9.2.2 公钥加密技术????????349
9.2.3 单向函数??????????350
9.2.4 数字签名??????????350
9.2.5 可信平台模块????????351
9.3 保护机制???????????352
9.3.1 保护域???????????352
9.3.2 访问控制列表????????353
9.3.3 权能????????????354
9.3.4 可信系统??????????356
9.3.5 可信计算基?????????357
9.3.6 安全系统的形式化模型?????358
9.3.7 多级安全??????????358
9.3.8 隐蔽信道??????????360
9.4 认证?????????????362
9.4.1 使用口令认证????????363
9.4.2 使用实际物体的认证方式????367
9.4.3 使用生物识别的验证方式????369
9.5 内部攻击???????????370
9.5.1 逻辑炸弹??????????370
9.5.2 后门陷阱??????????370
9.5.3 登录欺骗??????????371
9.6 利用代码漏洞??????????371
9.6.1 缓冲区溢出攻击???????372
9.6.2 格式化字符串攻击??????373
9.6.3 返回libc攻击?????????374
9.6.4 整数溢出攻击????????375
9.6.5 代码注入攻击????????376
9.6.6 权限提升攻击????????376
9.7 恶意软件???????????377
9.7.1 特洛伊木马?????????378
9.7.2 病毒????????????379
9.7.3 蠕虫????????????385
9.7.4 间谍软件??????????386
9.7.5 rootkit ???????????388
9.8 防御?????????????390
9.8.1 防火墙???????????391
9.8.2 反病毒和抑制反病毒技术????392
9.8.3 代码签名??????????395
9.8.4 囚禁????????????396
9.8.5 基于模型的入侵检测?????397
9.8.6 封装移动代码????????398
9.8.7 Java安全性?????????400
9.9 有关安全性研究?????????401
9.10 小结?????????????401
习题???????????????402
第10章 实例研究1:Linux ??????405
10.1 UNIX与Linux的历史??????405
10.1.1 UNICS ??????????405
10.1.2 PDP-11 UNIX ????????406
10.1.3 可移植的UNIX ???????406
10.1.4 Berkeley UNIX ???????407
10.1.5 标准UNIX ?????????407
10.1.6 MINIX ??????????408
10.1.7 Linux ???????????409
10.2 Linux概述??????????410
10.2.1 Linux的设计目标??????410
10.2.2 到Linux的接口???????411
10.2.3 shell ???????????412
10.2.4 Linux应用程序???????413
10.2.5 内核结构?????????414
10.3 Linux中的进程?????????416
10.3.1 基本概念?????????416
10.3.2 Linux中进程管理相关的系统调用?418
10.3.3 Linux中进程与线程的实现???420
10.3.4 Linux中的调度???????424
10.3.5 启动Linux系统???????426
10.4 Linux中的内存管理???????427
10.4.1 基本概念?????????427
10.4.2 Linux中的内存管理系统调用??429
10.4.3 Linux中内存管理的实现????430
10.4.4 Linux中的分页???????434
10.5 Linux中的I/O系统????????435
10.5.1 基本概念?????????435
10.5.2 网络???????????436
10.5.3 Linux的输入/输出系统调用???437
10.5.4 输入/输出在Linux中的实现???437
10.5.5 Linux中的模块???????439
10.6 Linux文件系统?????????440
10.6.1 基本概念?????????440
10.6.2 Linux的文件系统调用?????442
10.6.3 Linux文件系统的实现?????444
10.6.4 NFS:网络文件系统?????449
10.7 Linux的安全性????????453
10.7.1 基本概念?????????453
10.7.2 Linux中安全相关的系统调用??454
10.7.3 Linux中的安全实现??????455
10.8 小结?????????????455
习题???????????????456
第11章 实例研究2:Windows Vista ??459
11.1 Windows Vista的历史??????459
11.1.1 20世纪80年代:MS-DOS ???459
11.1.2 20世纪90年代:基于MS-DOS
的Windows ?????????460
11.1.3 21世纪:基于NT的Windows ??460
11.1.4 Windows Vista ???????462
11.2 Windows Vista编程???????462
11.2.1 内部NT应用编程接口?????463
11.2.2 Win32应用编程接口?????465
11.2.3 Windows注册表???????467
11.3 系统结构???????????468
11.3.1 操作系统结构????????469
11.3.2 启动Windows Vista ??????476
11.3.3 对象管理器的实现??????477
11.3.4 子系统、DLL和用户态服务??483
11.4 Windows Vista中的进程和线程???484
11.4.1 基本概念??????????484
11.4.2 作业、进程、线程和纤程管理
API调用??????????487
11.4.3 进程和线程的实现??????490
11.5 内存管理???????????494
11.5.1 基本概念??????????494
11.5.2 内存管理系统调用??????496
11.5.3 存储管理的实现???????497
11.6 Windows Vista的高速缓存?????502
11.7 Windows Vista的输入/输出????504
11.7.1 基本概念??????????504
11.7.2 输入/输出API调用??????504
11.7.3 I/O实现??????????506
11.8 Windows NT文件系统??????509
11.8.1 基本概念??????????510
11.8.2 NTFS文件系统的实现?????510
11.9 Windows Vista中的安全?????516
11.9.1 基本概念??????????516
11.9.2 安全相关的API调用?????518
11.9.3 安全性的实现????????518
11.10 小结????????????519
习题???????????????520
第12章 实例研究3:Symbian操作系统?522
12.1 Symbian操作系统的历史?????522
12.1.1 Symbian操作系统的起源:
Psion和EPOC ????????522
12.1.2 Symbian操作系统版本6 ????523
12.1.3 Symbian操作系统版本7 ????523
12.1.4 今天的Symbian操作系统????523
12.2 Symbian操作系统概述??????523
12.2.1 面向对象?????????524
12.2.2 微内核设计?????????524
12.2.3 Symbian操作系统纳核????525
12.2.4 客户机/服务器资源访问????525
12.2.5 较大型操作系统的特点????525
12.2.6 通信与多媒体????????526
12.3 Symbian操作系统中的进程和线程?526
12.3.1 线程和纳线程????????526
12.3.2 进程???????????527
12.3.3 活动对象?????????527
12.3.4 进程间通信?????????527
12.4 内存管理???????????528
12.4.1 没有虚拟内存的系统?????528
12.4.2 Symbian操作系统的寻址方式??529
12.5 输入和输出??????????530
12.5.1 设备驱动?????????530
12.5.2 内核扩展?????????530
12.5.3 直接存储器访问???????531
12.5.4 特殊情况:存储介质?????531
12.5.5 阻塞I/O ??????????531
12.5.6 可移动存储器????????531
12.6 存储系统???????????532
12.6.1 移动设备文件系统??????532
12.6.2 Symbian操作系统文件系统???532
12.6.3 文件系统安全和保护?????532
12.7 Symbian操作系统的安全?????533
12.8 Symbian操作系统中的通信????534
12.8.1 基本基础结构????????534
12.8.2 更仔细地观察基础结构????535
12.9 小结?????????????536
习题???????????????536
第13章 操作系统设计????????537
13.1 设计问题的本质????????537
13.1.1 目标???????????537
13.1.2 设计操作系统为什么困难???538
13.2 接口设计???????????539
13.2.1 指导原则?????????539
13.2.2 范型???????????540
13.2.3 系统调用接口????????542
13.3 实现?????????????543
13.3.1 系统结构?????????543
13.3.2 机制与策略?????????545
13.3.3 正交性??????????546
13.3.4 命名???????????546
13.3.5 绑定的时机?????????547
13.3.6 静态与动态结构???????547
13.3.7 自顶向下与自底向上的实现??548
13.3.8 实用技术?????????549
13.4 性能?????????????552
13.4.1 操作系统为什么运行缓慢???552
13.4.2 什么应该优化????????552
13.4.3 空间-时间的权衡??????553
13.4.4 高速缓存?????????554
13.4.5 线索???????????555
13.4.6 利用局部性?????????555
13.4.7 优化常见的情况???????555
13.5 项目管理???????????556
13.5.1 人月神话?????????556
13.5.2 团队结构?????????556
13.5.3 经验的作用?????????558
13.5.4 没有银弹?????????558
13.6 操作系统设计的趋势??????558
13.6.1 虚拟化??????????559
13.6.2 多核芯片?????????559
13.6.3 大型地址空间操作系统????559
13.6.4 联网???????????559
13.6.5 并行系统与分布式系统????560
13.6.6 多媒体??????????560
13.6.7 电池供电的计算机??????560
13.6.8 嵌入式系统?????????560
13.6.9 传感节点?????????561
13.7 小结?????????????561
习题???????????????561
第14章 阅读材料及参考文献?????563
14.1 进行深入阅读的建议??????563
14.1.1 简介及概要?????????563
14.1.2 进程和线程?????????563
14.1.3 存储管理?????????564
14.1.4 输入/输出?????????564
14.1.5 文件系统?????????564
14.1.6 死锁???????????564
14.1.7 多媒体操作系统???????564
14.1.8 多处理机系统????????565
14.1.9 安全???????????565
14.1.10 Linux ??????????566
14.1.11 Windows Vista ???????567
14.1.12 Symbian操作系统??????567
14.1.13 设计原则?????????567
14.2 按字母顺序排序的参考文献????568
Andrew S. Tanenbaum教授写作的《现代操作系统》,无论是英文版还是中文版都受到了中国读者的
欢迎。究其原因,该书内容丰富,反映了当代操作系统的发展与动向。这次出版的第3版,无疑在保持
原有特色的基础上,又有所发展。
第3版的一个很大变化是,大大加强了对操作系统中许多抽象概念的叙述,包括CPU到进程的抽
象、物理内存到地址空间(虚拟内存)的抽象以及磁盘到文件的抽象等。Tanenbaum教授在《现代操
作系统》前两版中,在这一方面确实着墨不多。译者在翻译该书前两版的内容时,就对此有些疑问,
似乎Tanenbaum教授的讲授方法与众不同。这是因为,在国内许多院校的操作系统教学过程中,授课
教师非常重视对这些抽象概念的讲解和分析。而且据译者所知,在美国不少大学的操作系统教学过程
中,也很重视对这些抽象概念的引入。译者认为,Tanenbaum教授在第3版中对有关操作系统基本抽象
概念叙述方式的重大修改,是对《现代操作系统》内在质量的提升,将使第3版受到更多中国教师和
读者的欢迎。
第3版的另外一个重大变化是,第10章、第11章和第12章是由另外三位作者贡献的,他们分别是美
国佐治亚理工学院的Ada Gavrilovska博士、Microsoft公司的Dave Probert博士以及Hope学院的Mike
Jipping教授。
第10章的贡献者Ada Gavrilovska博士在美国佐治亚理工学院的计算学院从事教学和科研工作,她具
有多年讲授高级操作系统等有关课程的经验,是一位造诣很高的研究科学家。
第11章的贡献者—Microsoft公司的Dave Probert博士是译者的老朋友了。我们在编写机械工业出
版社出版的《Windows操作系统原理》以及《Windows内核实验教程》等书籍的过程中,有过密切的合
作。Dave Probert博士是Microsoft公司Windows操作系统内核的主要设计人员之一,他对操作系统的把
握以及以设计师身份对Windows操作系统内核深入和广泛的认识,几乎无人可以比拟。Dave Probert博
士写作了第11章,并指出哪些地方Microsoft做对了,哪些地方Microsoft做错了。正如Tanenbaum教授在
前言中指出的:“由于Dave的工作,本书的质量有了很大提高”。
Mike Jipping教授是Hope学院计算机系的主任,具有长期的教学与科研经验。他早在2002年就出版
了专著《Symbian OS Communications Programming》,对用于智能手机的Symbian 操作系统有着深刻的
理解,由他来写作有关Symbian OS的第12章,当然是再合适不过了。
本书还增加了许多新的习题,有助于读者深入理解操作系统的精髓。
本书的出版得到了机械工业出版社华章分社的大力支持,在此表示由衷感谢。
参加本书翻译、审阅和校对的还有桂尼克、古亮、孔俊俊、孙剑、畅明、白光冬、刘晗、冯涛、张
旦峰、陈子文、王刚、张琳、赵敬峰、张顺廷、张毅然、荀娜、张晓薇、周晓云、李昌术等。此外,赵
霞博士对一些名词术语的翻译提出了宝贵意见。在此对他(她)们的贡献表示诚挚的感谢。
由于译者水平有限,本书的译文必定会存在一些不足或错误之处,欢迎各位专家和广大读者批评指正。
译者
2009年5月
读者书评
发表评论



高级搜索
OpenSolaris设备驱动原理与开发
新手易学——系统安装与重装
操作系统原理与设计


版权所有© 2008 北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260