新書推薦:
《
纯粹·我只要少许
》
售價:NT$
367.0
《
投机苦旅:一位投机客的凤凰涅槃
》
售價:NT$
403.0
《
重返马赛渔场:社会规范与私人治理的局限
》
售價:NT$
316.0
《
日子慢慢向前,事事慢慢如愿
》
售價:NT$
254.0
《
场景供应链金融:将风口变成蓝海
》
售價:NT$
509.0
《
汗青堂丛书146·布鲁克王朝:一个英国家族在东南亚的百年统治
》
售價:NT$
418.0
《
人生是旷野啊
》
售價:NT$
332.0
《
甲骨文丛书· “安国之道”:英国的殖民情报系统及其在亚洲的扩张
》
售價:NT$
403.0
編輯推薦:
本书的目的是使读者熟悉现代操作系统的设计原理和实现问题,因此单纯讲述概念和理论远远不够。为说明这些概念,同时将它们与真实世界中不得不做出的设计选择相关联,本书选择了4个操作系统作为实例:
◆ Windows 8:用于个人计算机、工作站和服务器的多任务操作系统。它融入了很多操作系统发展的*技术。此外,Windows是*早采用面向对象原理进行设计的重要商业操作系统之一。本书涵盖了Windows*版本所采用的技术,包括Windows 8。
◆ Android:Android是为嵌入式设备特别是手机量身定做的,主要是为了满足嵌入式环境的独特需求。本书介绍了Android的内核信息。
◆ UNIX:*初是为小型计算机设计的多用户操作系统,但后来广泛用于从微机到超级计算机的各种机器中。本书采用若干版本的UNIX作为实例。FreeBSD融合了很多的现代特征,是一个广泛应用的操作系统;Solaris是一个广泛应用的商业版UNIX系统。
◆ Linux:一个非常普及且源代码开放的UNIX版本。
选择这些操作系统的原因是它们之间存在相关性,同时它们也具有代表性。关于这些实例操作系统的讨论贯穿全书
內容簡介:
本书既是关于操作系统概念、结构和机制的教材,目的是尽可能清楚和全面地展示现代操作系统的本质和特点;也是讲解操作系统的经典教材,不仅系统地讲述了操作系统的基本概念、原理和方法,而且以当代*流行的操作系统Windows 8、UNIX、Android、Linux为例,展现了当代操作系统的本质和特点。全书共分背景知识、进程、内存、调度、输入输出和文件、嵌入式系统六部分,内容包括计算机系统概述、操作系统概述、进程描述和控制、线程、并发性:互斥和同步、并发:死锁和饥饿、内存管理、虚拟内存、单处理器调度、多处理器和实时调度、IO管理和磁盘调度、文件管理、嵌入式操作系统、虚拟机、计算机安全技术、分布式处理、客户服务器和集群等。此外,本书配套网站提供了及时、生动的材料。
關於作者:
陈向群,北京大学信息科学技术学院计算机科学技术系教授,博士生导师,主要研究领域为软件需求工程、知识工程、基于知识的软件工程、面向服务的计算。
William Stallings:美国圣母大学电子工程学士,麻省理工学院计算机科学博士,《密码术》期刊编委。美国多家高科技公司执行总监,政府机构、计算机软硬件供应商顾问;曾为各种计算机和操作系统设计并实现TCPIP和OSI协议套件;创建并维护了计算机科学专业学生资源网站ComputerScienceStudent.com。出版图书17种,内容涉及计算机安全、计算机网络和计算机系统结构等;在《IEEE进展》《ACM计算评论》和《密码术》等期刊上发表文章多篇;先后12次获美国年度最佳计算机科学教科书奖和学术作者协会奖。
目錄 :
第0章读者与教师指南1
0.1本书概述1
0.2实例系统1
0.3读者和教师的路线图2
0.4互联网和网站资源3
第一部分背景知识
第1章计算机系统概述6
1.1基本构成6
1.2微处理器的发展7
1.3指令的执行8
1.4中断10
1.4.1中断和指令周期11
1.4.2中断处理12
1.4.3多个中断14
1.5存储器的层次结构15
1.6高速缓存17
1.6.1动机18
1.6.2高速缓存原理18
1.6.3高速缓存设计19
1.7直接内存存取20
1.8多处理器和多核计算机组织结构21
1.8.1对称多处理器21
1.8.2多核计算机23
1.9推荐读物23
1.10 关键术语、复习题和习题24
1.10.1关键术语24
1.10.2复习题24
1.10.3习题24
附录1A两级存储器的性能特征26
第2章操作系统概述31
2.1操作系统的目标和功能31
2.1.1作为用户计算机接口的
操作系统31
2.1.2作为资源管理器的操作系统32
2.1.3操作系统的易扩展性33
2.2操作系统的发展史34
2.2.1串行处理34
2.2.2简单批处理系统34
2.2.3多道批处理系统36
2.2.4分时系统38
2.3主要成就40
2.3.1进程40
2.3.2内存管理42
2.3.3信息保护和安全43
2.3.4调度和资源管理44
2.4现代操作系统的特征45
2.5容错性47
2.5.1基本概念47
2.5.2错误48
2.5.3操作系统机制48
2.6多处理器和多核操作系统
设计考虑因素49
2.6.1对称多处理器操作系统设计
考虑因素49
2.6.2多核操作系统设计考虑因素49
2.7微软Windows系统简介51
2.7.1背景51
2.7.2体系结构51
2.7.3客户-服务器模型53
2.7.4线程和SMP54
2.7.5Windows对象54
2.8传统的UNIX系统55
2.8.1历史55
2.8.2描述56
2.9现代UNIX系统57
2.9.1System V Release 4(SVR4)58
2.9.2BSD58
2.9.3Solaris 1058
2.10 Linux操作系统58
2.10.1历史58
2.10.2模块结构59
2.10.3内核组件60
2.11 Android62
2.11.1Android软件体系结构63
2.11.2Android系统体系结构64
2.11.3活动65
2.11.4电源管理65
2.12 推荐读物和动画66
2.13 关键术语、复习题和习题67
2.13.1关键术语67
2.13.2复习题67
2.13.3习题67
第二部分进程
第3章进程描述和控制70
3.1什么是进程70
3.1.1背景70
3.1.2进程和进程控制块71
3.2进程状态72
3.2.1两状态进程模型73
3.2.2进程的创建和终止74
3.2.3五状态模型75
3.2.4被挂起的进程78
3.3进程描述81
3.3.1操作系统的控制结构82
3.3.2进程控制结构82
3.4进程控制86
3.4.1执行模式86
3.4.2进程创建87
3.4.3进程切换88
3.5操作系统的执行90
3.5.1无进程内核90
3.5.2在用户进程内运行90
3.5.3基于进程的操作系统91
3.6UNIX SVR4进程管理91
3.6.1进程状态92
3.6.2进程描述93
3.6.3进程控制94
3.7小结95
3.8推荐读物和动画95
3.9关键术语、复习题和习题95
3.9.1关键术语95
3.9.2复习题96
3.9.3习题96
第4章线程99
4.1进程和线程99
4.1.1多线程99
4.1.2线程的功能102
4.2线程分类103
4.2.1用户级和内核级线程103
4.2.2其他方案106
4.3多核和多线程107
4.3.1多核系统上的软件性能107
4.3.2应用示例:Valve游戏软件109
4.4Windows 8的进程和线程管理110
4.4.1Windows 8中的变化111
4.4.2Windows进程111
4.4.3进程对象和线程对象112
4.4.4多线程113
4.4.5线程状态113
4.4.6对操作系统子系统的支持114
4.5Solaris的线程和SMP管理114
4.5.1多线程体系结构114
4.5.2动机115
4.5.3进程结构115
4.5.4线程的执行116
4.5.5把中断当作线程117
4.6Linux的进程和线程管理118
4.6.1Linux任务118
4.6.2Linux线程119
4.6.3Linux命名空间120
4.7Android的进程和线程管理121
4.7.1安卓应用121
4.7.2活动121
4.7.3进程和线程122
4.8Mac OS X的GCD技术123
4.9小结124
4.10 推荐读物125
4.11 关键术语、复习题和习题125
4.11.1关键术语125
4.11.2复习题125
4.11.3习题125
第5章并发性:互斥和同步129
5.1并发的原理130
5.1.1一个简单的例子130
5.1.2竞争条件132
5.1.3操作系统关注的问题132
5.1.4进程的交互133
5.1.5互斥的要求135
5.2互斥:硬件的支持136
5.2.1中断禁用136
5.2.2专用机器指令136
5.3信号量138
5.3.1互斥141
5.3.2生产者消费者问题142
5.3.3信号量的实现146
5.4管程147
5.4.1使用信号的管程147
5.4.2使用通知和广播的管程149
5.5消息传递151
5.5.1同步151
5.5.2寻址152
5.5.3消息格式153
5.5.4排队原则154
5.5.5互斥154
5.6读者写者问题155
5.6.1读者优先156
5.6.2写者优先156
5.7小结158
5.8推荐读物和动画159
5.9关键术语、复习题和习题160
5.9.1关键术语160
5.9.2复习题160
5.9.3习题160
第6章并发:死锁和饥饿170
6.1死锁原理170
6.1.1可重用资源173
6.1.2可消耗资源174
6.1.3资源分配图174
6.1.4死锁的条件175
6.2死锁预防176
6.2.1互斥176
6.2.2占有且等待176
6.2.3不可抢占176
6.2.4循环等待177
6.3死锁避免177
6.3.1进程启动拒绝177
6.3.2资源分配拒绝178
6.4死锁检测181
6.4.1死锁检测算法181
6.4.2恢复182
6.5一种综合的死锁策略182
6.6哲学家就餐问题183
6.6.1基于信号量的解决方案183
6.6.2基于管程的解决方案184
6.7UNIX并发机制185
6.7.1管道186
6.7.2消息186
6.7.3共享内存186
6.7.4信号量186
6.7.5信号187
6.8Linux内核并发机制187
6.8.1原子操作188
6.8.2自旋锁189
6.8.3信号量190
6.8.4屏障191
6.9Solaris线程同步原语192
6.9.1互斥锁193
6.9.2信号量193
6.9.3多读者单写者锁193
6.9.4条件变量193
6.10 Windows 7的并发机制194
6.10.1等待函数194
6.10.2分派器对象194
6.10.3临界区195
6.10.4轻量级读写锁和条件变量195
6.10.5锁无关同步机制196
6.11 Android进程间通信196
6.12 小结197
6.13 推荐读物和动画197
6.14 关键术语、复习题和习题198
6.14.1关键术语198
6.14.2复习题198
6.14.3习题198
第三部分内存
第7章内存管理204
7.1内存管理的需求204
7.1.1重定位204
7.1.2保护205
7.1.3共享205
7.1.4逻辑组织205
7.1.5物理组织206
7.2内存分区206
7.2.1固定分区207
7.2.2动态分区208
7.2.3伙伴系统210
7.2.4重定位212
7.3分页212
7.4分段215
7.5小结216
7.6推荐读物和动画216
7.7关键术语、复习题和习题216
7.7.1关键术语216
7.7.2复习题217
7.7.3习题217
附录7A加载和链接219
第8章虚拟内存223
8.1硬件和控制结构223
8.1.1局部性和虚拟内存224
8.1.2分页225
8.1.3分段232
8.1.4段页式232
8.1.5保护和共享233
8.2操作系统软件234
8.2.1读取策略235
8.2.2放置策略235
8.2.3置换策略235
8.2.4驻留集管理239
8.2.5清除策略243
8.2.6加载控制244
8.3UNIX和Solaris内存管理245
8.3.1分页系统245
8.3.2内核内存分配器247
8.4Linux内存管理249
8.4.1虚拟内存249
8.4.2内核内存分配250
8.5Windows内存管理251
8.5.1Windows虚拟地址映射251
8.5.2Windows分页251
8.5.3Windows 8交换252
8.6Android内存管理252
8.7小结252
8.8推荐读物和动画253
8.9关键术语、复习题和习题253
8.9.1关键术语253
8.9.2复习题254
8.9.3习题254
第四部分调度
第9章单处理器调度258
9.1处理器调度的类型258
9.1.1长程调度259
9.1.2中程调度260
9.1.3短程调度260
9.2调度算法260
9.2.1短程调度规则260
9.2.2优先级的使用261
9.2.3选择调度策略262
9.2.4性能比较268
9.2.5公平共享调度272
9.3传统的UNIX调度273
9.4小结274
9.5推荐读物9
內容試閱 :
封底文字
本书是一本关于操作系统概念、结构和机制的教材,目的是尽可能清楚和全面地展示现代操作系统的本质与特点。第八版在反映操作系统领域的变化的同时,保持了操作系统领域的广泛性,同时得到了许多教授和研究人员的审阅,叙述更清晰、紧凑。
本书新增内容
◆ Windows 8:详细介绍了Windows 8内核的各种关键技术。
◆ Android操作系统:详细介绍了Android移动平台的限制和运行环境。
◆ 嵌入式Linux:详细介绍了嵌入式Linux的关键要素。
◆ 虚拟机:新增了虚拟机操作系统设计问题的一章。
◆ 多核设计问题:增加了关于操作系统设计问题的讨论。
◆ IO标准化:更新了相应的接口内容。
◆ 存储硬件:更新了存储硬件部分,包含了固态硬盘驱动器。
◆ 容错性:新增了介绍容错机制的一节。
本书特点
◆ 本书选择Windows 8、Android、UNIX 和Linux四个有代表性的操作系统作为实例讲解。
◆ 支持ACMIEEE计算机科学课程体系2013。
◆ 适用于教学,书中含有大量的动画、视频和图表,每章末尾给出了关键术语、复习题、习题、深入阅读建议和相关网站的链接;书末给出了常用的缩略词和参考文献。
◆ 提供教学资源,包括参考答案、项目手册、PPT、PDF文件、教学大纲等,请参考书中的教学支持说明。
◆ 提供操作系统项目和其他学生练习。
◆ 提供操作系统教学平台OS161、模拟项目和编辑项目。
译 者 序
操作系统领域一直在不断地发展和变化,计算机科学与技术专业、软件工程专业和信息安全专业的学生要如何全面且深入地理解操作系统呢?William Stallings博士的这本教材给出了答案。William Stallings博士撰写了很多有关计算机领域的教材,曾12次获得美国年度最佳计算机科学教科书奖和学术作者协会奖。他的这本教材已更新到了第八版,并被全球的很多大学采用为操作系统课程的教材或参考书。本书内容丰富、布局合理、概念清晰、举例恰当、文字简洁,是一本不可多得的优秀教材。
本书在保持第七版的众多特色的基础上,紧跟操作系统领域的最新发展,增加了许多新内容,包括Windows 8的各种关键技术、Android操作系统、嵌入式Linux、虚拟机技术、多核设计问题、IO标准化问题、存储硬件,以及ACMIEEE计算机科学课程体系2013中的核心专题容错机制。
特别值得一提的是,本书的配套资源可为教师和学生提供很大的帮助,这些资源包括每章末尾的习题、习题参考答案、项目安排建议、课堂教学课件、测试题、关于并发的教学视频、教学大纲样例等。这些资源非常宝贵,可为中国各高等学校开设操作系统课程的教师提高教学质量提供有力的支持。即便是在课堂上带领学生认真讨论每章后面精心提炼的关键术语,对学生顺利完成操作系统课程的学习也是非常有意义的。
本书主要由陈向群、陈渝翻译。参加翻译、审阅和校对工作的还有王承珂、谌国风、申鹏、张大卫、刘璨、栗阶、刘波、杨立群、腾芸、潘伟民、金鑫、刘满、周晴漪等,在此对他们的贡献表示真诚的感谢。
由于译者水平有限,本书的译文中必定会存在一些不足或错误之处,欢迎各位专家和广大读者们批评指正。
前 言
第八版新增内容
自本书第七版出版以来,操作系统领域一直在不断地发展着。本书的新版试图在反映这些变化的同时,保持操作系统领域的广泛性。修订本书时,第七版得到了从事教学和研究的许多教授的审阅,因此新版中许多地方的叙述更加清晰、紧凑。
除了有利于教学和阅读方便外,书中的内容也因应操作系统领域的进展做了整体更新。主要变化如下:
◆ Windows 8:Windows 8是微软公司面向个人计算机、工作站和服务器的最新操作系统,其内部架构出现了很多变化。新版详细介绍了Windows 8内核的各种关键技术,包括进程线程管理、调度、内存管理、安全、文件系统和IO。
◆ Android操作系统:Android是一个快速发展的移动平台。移动设备在现实世界中的限制和运行环境,与传统桌面计算机和服务器相比有很大的不同。因此学习这个新环境很重要。
◆ 嵌入式Linux:在嵌入式系统中使用最小版本的Linux已日益流行,新版中介绍了嵌入式Linux的关键要素。
◆ 虚拟机:服务器虚拟化及其他各种形式的虚拟机得到了广泛应用,因此本书新增了介绍面向虚拟机的操作系统的设计问题的一章。
◆ 多核设计问题:现在的主流体系结构是多核架构,因此新版中增加了相关操作系统设计问题的讨论。
◆ IO标准化:考虑到最新技术的发展,本书进行了相应的更新,包括雷电接口。
◆ 存储硬件:书中的存储硬件部分进行了更新,现在已包含对固态硬盘驱动器的讨论。
◆ 容错:ACMIEEE计算机科学课程体系2013已将容错列为操作系统课程的核心专题,因此新增了介绍容错机制的一节。
目标
本书是一本关于操作系统概念、结构和机制的教材,目的是尽可能清楚和全面地展示现代操作系统的本质与特点。
这是一项具有挑战性的任务。首先,需要为各种各样的计算机系统设计操作系统,包括嵌入式系统、智能手机、单用户工作站和个人计算机、中等规模的共享系统、大型计算机和超级计算机,以及诸如实时系统之类的专用机器。多样性不仅体现在机器的容量和速度上,而且体现在具体应用和系统支持的需求上;其次,计算机系统正以日新月异的速度发展变化,操作系统设计中的许多重要领域都是最近才开始研究的,并且关于这些领域及其他新领域的研究工作仍在进行。
尽管存在着多样性和变化快等问题,但一些基本概念仍然贯穿始终。当然,这些概念的应用依赖于当前的技术状况和特定的应用需求。本书的目的是全面讨论操作系统设计的基本原理,并将现代流行的设计问题与当前操作系统的发展方向相关联。
实例系统
本书的目的是使读者熟悉现代操作系统的设计原理和实现问题,因此单纯讲述概念和理论远远不够。为说明这些概念,同时将它们与真实世界中不得不做出的设计选择相关联,本书选择了4个操作系统作为实例:
◆ Windows 8:用于个人计算机、工作站和服务器的多任务操作系统。它融入了很多操作系统发展的最新技术。此外,Windows是最早采用面向对象原理进行设计的重要商业操作系统之一。本书涵盖了Windows最新版本所采用的技术,包括Windows 8。
◆ Android:Android是为嵌入式设备特别是手机量身定做的,主要是为了满足嵌入式环境的独特需求。本书介绍了Android的内核信息。
◆ UNIX:最初是为小型计算机设计的多用户操作系统,但后来广泛用于从微机到超级计算机的各种机器中。本书采用若干版本的UNIX作为实例。FreeBSD融合了很多的现代特征,是一个广泛应用的操作系统;Solaris是一个广泛应用的商业版UNIX系统。
◆ Linux:一个非常普及且源代码开放的UNIX版本。
选择这些操作系统的原因是它们之间存在相关性,同时它们也具有代表性。关于这些实例操作系统的讨论贯穿全书,而非集中于某一章或附录部分。因此在讨论并发性时,会描述每个实例操作系统的并发机制,并探讨各种设计选择的动机。采用真实的例子可加深读者对相关章节中设计概念的理解。为方便起见,读者也可在在线文档中查阅所有实例操作系统的资料。
对ACMIEEE计算机科学课程体系2013的支持
本书的读者是大学学生和专业技术人员,可作为计算机科学、计算机工程和电气工程专业本科生一学期或两学期的操作系统课程教材。新版符合ACMIEEE计算机科学课程体系2013(CS2013)最新草案版(2013年2月)的要求。在CS2013推荐的课程体系中,操作系统(OS)是计算机科学的主干课程。CS2013将所有课程内容分为三类,即核心类1(含课程体系中的所有专题)、核心类2(含所有或几乎所有专题)、选修类(提供深度和广度)。在操作系统领域,CS2013含有核心类1的2个专题、核心类2的4个专题及选修类的6个可选专题,每个专题下都含有一些子专题。本书涵盖了CS2013列出的三类课程中的所有专题和子专题。
表P.1中给出了本书对操作系统知识领域的支持情况。每个专题下的子专题清单,读者可参阅文件box.comOS8eCS2013-OS.pdf。
表P.1 本书对CS2013中操作系统知识领域的覆盖情况
专 题本书中的覆盖情况
操作系统概述(类1)第2章:操作系统概述
操作系统原理(类1)第1章:计算机系统概述
第2章:操作系统概述
并发(类2)第5章:并发性:互斥和同步
第6章:并发:死锁和饥饿
附录A:并发主题
第18章:分布式进程管理
第9章:单处理器调度
第10章:多处理器和实时调度
存储管理(类2)第7章:内存管理
第8章:虚拟内存
安全与保护(类2)第15章:计算机安全技术
虚拟机(选修)第14章:虚拟机
设备管理(选修)第11章:IO管理和磁盘调度
文件系统(选修)第12章:文件管理
实时与嵌入式系统(选修)第10章:多处理器和实时调度
第13章:嵌入式操作系统
书中与Android相关的例子
容错(选修)2.5节:容错性
系统性能评估(选修)书中与存储管理、调度及其他领域相关的性能问题
本书结构
本书分为六部分(参见第0章的综述):
◆ 背景知识
◆ 进程
◆ 内存
◆ 调度
◆ 嵌入式系统
◆ 输入输出和文件
本书适用于教学。书中含有大量的动画、视频和图表,每章末尾给出了关键术语、复习题、习题、深入阅读建议和相关网站的链接;书末给出了常用的缩略词和参考文献。此外,本书可为教师提供题库。
教师支持资源
本书的主要目的是成为操作系统这门课程的有效教学工具,这在本书的结构和补充材料中得到了反映。以下是便于教师教学的补充材料: