封底文字
本书是一本关于操作系统概念、结构和机制的教材,目的是尽可能清楚和全面地展示现代操作系统的本质与特点。第八版在反映操作系统领域的变化的同时,保持了操作系统领域的广泛性,同时得到了许多教授和研究人员的审阅,叙述更清晰、紧凑。
本书新增内容
◆ Windows 8:详细介绍了Windows 8内核的各种关键技术。
◆ Android操作系统:详细介绍了Android移动平台的限制和运行环境。
◆ 嵌入式Linux:详细介绍了嵌入式Linux的关键要素。
◆ 虚拟机:新增了虚拟机操作系统设计问题的一章。
◆ 多核设计问题:增加了关于操作系统设计问题的讨论。
◆ I/O标准化:更新了相应的接口内容。
◆ 存储硬件:更新了存储硬件部分,包含了固态硬盘驱动器。
◆ 容错性:新增了介绍容错机制的一节。
本书特点
◆ 本书选择Windows 8、Android、UNIX 和Linux四个有代表性的操作系统作为实例讲解。
◆ 支持ACM/IEEE计算机科学课程体系2013。
◆ 适用于教学,书中含有大量的动画、视频和图表,每章末尾给出了关键术语、复习题、习题、深入阅读建议和相关网站的链接;书末给出了常用的缩略词和参考文献。
◆ 提供教学资源,包括参考答案、项目手册、PPT、PDF文件、教学大纲等,请参考书中的“教学支持说明”。
◆ 提供操作系统项目和其他学生练习。
◆ 提供操作系统教学平台OS/161、模拟项目和编辑项目。
译 者 序
操作系统领域一直在不断地发展和变化,计算机科学与技术专业、软件工程专业和信息安全专业的学生要如何全面且深入地理解操作系统呢?William Stallings博士的这本教材给出了答案。William Stallings博士撰写了很多有关计算机领域的教材,曾12次获得美国年度最佳计算机科学教科书奖和学术作者协会奖。他的这本教材已更新到了第八版,并被全球的很多大学采用为操作系统课程的教材或参考书。本书内容丰富、布局合理、概念清晰、举例恰当、文字简洁,是一本不可多得的优秀教材。
本书在保持第七版的众多特色的基础上,紧跟操作系统领域的最新发展,增加了许多新内容,包括Windows 8的各种关键技术、Android操作系统、嵌入式Linux、虚拟机技术、多核设计问题、I/O标准化问题、存储硬件,以及“ACM/IEEE计算机科学课程体系2013”中的核心专题——容错机制。
特别值得一提的是,本书的配套资源可为教师和学生提供很大的帮助,这些资源包括每章末尾的习题、习题参考答案、项目安排建议、课堂教学课件、测试题、关于并发的教学视频、教学大纲样例等。这些资源非常宝贵,可为中国各高等学校开设操作系统课程的教师提高教学质量提供有力的支持。即便是在课堂上带领学生认真讨论每章后面精心提炼的关键术语,对学生顺利完成操作系统课程的学习也是非常有意义的。
本书主要由陈向群、陈渝翻译。参加翻译、审阅和校对工作的还有王承珂、谌国风、申鹏、张大卫、刘璨、栗阶、刘波、杨立群、腾芸、潘伟民、金鑫、刘满、周晴漪等,在此对他们的贡献表示真诚的感谢。
由于译者水平有限,本书的译文中必定会存在一些不足或错误之处,欢迎各位专家和广大读者们批评指正。
前 言
第八版新增内容
自本书第七版出版以来,操作系统领域一直在不断地发展着。本书的新版试图在反映这些变化的同时,保持操作系统领域的广泛性。修订本书时,第七版得到了从事教学和研究的许多教授的审阅,因此新版中许多地方的叙述更加清晰、紧凑。
除了有利于教学和阅读方便外,书中的内容也因应操作系统领域的进展做了整体更新。主要变化如下:
◆ Windows 8:Windows 8是微软公司面向个人计算机、工作站和服务器的最新操作系统,其内部架构出现了很多变化。新版详细介绍了Windows 8内核的各种关键技术,包括进程/线程管理、调度、内存管理、安全、文件系统和I/O。
◆ Android操作系统:Android是一个快速发展的移动平台。移动设备在现实世界中的限制和运行环境,与传统桌面计算机和服务器相比有很大的不同。因此学习这个新环境很重要。
◆ 嵌入式Linux:在嵌入式系统中使用最小版本的Linux已日益流行,新版中介绍了嵌入式Linux的关键要素。
◆ 虚拟机:服务器虚拟化及其他各种形式的虚拟机得到了广泛应用,因此本书新增了介绍面向虚拟机的操作系统的设计问题的一章。
◆ 多核设计问题:现在的主流体系结构是多核架构,因此新版中增加了相关操作系统设计问题的讨论。
◆ I/O标准化:考虑到最新技术的发展,本书进行了相应的更新,包括雷电接口。
◆ 存储硬件:书中的存储硬件部分进行了更新,现在已包含对固态硬盘驱动器的讨论。
◆ 容错:“ACM/IEEE计算机科学课程体系2013”已将容错列为操作系统课程的核心专题,因此新增了介绍容错机制的一节。
目标
本书是一本关于操作系统概念、结构和机制的教材,目的是尽可能清楚和全面地展示现代操作系统的本质与特点。
这是一项具有挑战性的任务。首先,需要为各种各样的计算机系统设计操作系统,包括嵌入式系统、智能手机、单用户工作站和个人计算机、中等规模的共享系统、大型计算机和超级计算机,以及诸如实时系统之类的专用机器。多样性不仅体现在机器的容量和速度上,而且体现在具体应用和系统支持的需求上;其次,计算机系统正以日新月异的速度发展变化,操作系统设计中的许多重要领域都是最近才开始研究的,并且关于这些领域及其他新领域的研究工作仍在进行。
尽管存在着多样性和变化快等问题,但一些基本概念仍然贯穿始终。当然,这些概念的应用依赖于当前的技术状况和特定的应用需求。本书的目的是全面讨论操作系统设计的基本原理,并将现代流行的设计问题与当前操作系统的发展方向相关联。
实例系统
本书的目的是使读者熟悉现代操作系统的设计原理和实现问题,因此单纯讲述概念和理论远远不够。为说明这些概念,同时将它们与真实世界中不得不做出的设计选择相关联,本书选择了4个操作系统作为实例:
◆ Windows 8:用于个人计算机、工作站和服务器的多任务操作系统。它融入了很多操作系统发展的最新技术。此外,Windows是最早采用面向对象原理进行设计的重要商业操作系统之一。本书涵盖了Windows最新版本所采用的技术,包括Windows 8。
◆ Android:Android是为嵌入式设备特别是手机量身定做的,主要是为了满足嵌入式环境的独特需求。本书介绍了Android的内核信息。
◆ UNIX:最初是为小型计算机设计的多用户操作系统,但后来广泛用于从微机到超级计算机的各种机器中。本书采用若干版本的UNIX作为实例。FreeBSD融合了很多的现代特征,是一个广泛应用的操作系统;Solaris是一个广泛应用的商业版UNIX系统。
◆ Linux:一个非常普及且源代码开放的UNIX版本。
选择这些操作系统的原因是它们之间存在相关性,同时它们也具有代表性。关于这些实例操作系统的讨论贯穿全书,而非集中于某一章或附录部分。因此在讨论并发性时,会描述每个实例操作系统的并发机制,并探讨各种设计选择的动机。采用真实的例子可加深读者对相关章节中设计概念的理解。为方便起见,读者也可在在线文档中查阅所有实例操作系统的资料。
对“ACM/IEEE计算机科学课程体系2013”的支持
本书的读者是大学学生和专业技术人员,可作为计算机科学、计算机工程和电气工程专业本科生一学期或两学期的操作系统课程教材。新版符合“ACM/IEEE计算机科学课程体系2013”(CS2013)最新草案版(2013年2月)的要求。在CS2013推荐的课程体系中,操作系统(OS)是计算机科学的主干课程。CS2013将所有课程内容分为三类,即核心类1(含课程体系中的所有专题)、核心类2(含所有或几乎所有专题)、选修类(提供深度和广度)。在操作系统领域,CS2013含有核心类1的2个专题、核心类2的4个专题及选修类的6个可选专题,每个专题下都含有一些子专题。本书涵盖了CS2013列出的三类课程中的所有专题和子专题。
表P.1中给出了本书对操作系统知识领域的支持情况。每个专题下的子专题清单,读者可参阅文件box.com/OS8e/CS2013-OS.pdf。
表P.1 本书对CS2013中操作系统知识领域的覆盖情况
专 题 本书中的覆盖情况
操作系统概述(类1) 第2章:操作系统概述
操作系统原理(类1) 第1章:计算机系统概述
第2章:操作系统概述
并发(类2) 第5章:并发性:互斥和同步
第6章:并发:死锁和饥饿
附录A:并发主题
第18章:分布式进程管理
第9章:单处理器调度
第10章:多处理器和实时调度
存储管理(类2) 第7章:内存管理
第8章:虚拟内存
安全与保护(类2) 第15章:计算机安全技术
虚拟机(选修) 第14章:虚拟机
设备管理(选修) 第11章:I/O管理和磁盘调度
文件系统(选修) 第12章:文件管理
实时与嵌入式系统(选修) 第10章:多处理器和实时调度
第13章:嵌入式操作系统
书中与Android相关的例子
容错(选修) 2.5节:容错性
系统性能评估(选修) 书中与存储管理、调度及其他领域相关的性能问题
本书结构
本书分为六部分(参见第0章的综述):
◆ 背景知识
◆ 进程
◆ 内存
◆ 调度
◆ 嵌入式系统
◆ 输入/输出和文件
本书适用于教学。书中含有大量的动画、视频和图表,每章末尾给出了关键术语、复习题、习题、深入阅读建议和相关网站的链接;书末给出了常用的缩略词和参考文献。此外,本书可为教师提供题库。
教师支持资源
本书的主要目的是成为操作系统这门课程的有效教学工具,这在本书的结构和补充材料中得到了反映。以下是便于教师教学的补充材料: