基本信息
- 原书名:Operating System Concepts Essentials, Second Edition

内容简介
作译者
亚伯拉罕·西尔伯沙茨(Abraham Silberschatz) 计算机科学家,ACM、IEEE和AAAS会士。现任耶鲁大学计算机科学系教授,之前曾任贝尔实验室信息科学研究中心副主管。除本书外,他还是教材《数据库系统概念》的作者之一。
彼得·B. 高尔文(Peter B. Galvin) 现任Pluribus Networks首席解决方案架构师,之前曾任系统集成商Corporate Technologies的首席技术官,还曾在波士顿大学担任讲师。
格雷格·加涅(Greg Gagne) 威斯敏斯特学院计算机科学系主任,操作系统、计算机网络、并行编程和软件工程方面的专家。
---译者简介---
郑扣根,浙江大学计算机学院教授、博士生导师。1994年起于浙江大学任教至今,长期从事操作系统、计算理论、形式化方法、计算机网络等方面的教学和科研工作。
目录
译者序
前言
第一部分 概论
第1章 导论 2
1.1 操作系统的功能 2
1.1.1 用户视角 2
1.1.2 系统视角 3
1.1.3 操作系统的定义 4
1.2 计算机系统的组成 4
1.2.1 计算机系统的运行 5
1.2.2 存储结构 6
1.2.3 I/O结构 8
1.3 计算机系统的体系结构 9
1.3.1 单处理器系统 9
1.3.2 多处理器系统 10
1.3.3 集群系统 12
1.4 操作系统的结构 13
1.5 操作系统的执行 14
1.5.1 双重模式与多重模式的执行 15
译者序
为什么要再三翻译此书呢?第一,如之前版本译者序中所言,这是一本操作系统的“圣经”;第二,操作系统对计算机专业的学生实在是非常基础和重要;第三,我们长期从事计算机专业教学的使命使然,绵薄之力也当奉献。
较之前的版本,此版本的特点如下:
新增了多核系统和移动计算的内容。
每一章都融入了操作系统的新发展,并删除了一些过时的内容:
在计算环境中考虑了移动计算、云计算等时下热点的内容。针对移动设备大量普及应用的环境,增加了相关的操作系统、用户界面、内存管理等内容。针对大容量存储的发展,新增了固态硬盘等内容。
在进程、线程、同步、内存管理、文件系统及实现、I/O系统、Linux系统等方面,根据技术发展做了更新。
在编程环境方面,同时考虑POSIX、Java、Windows系统。
更新了习题、编程项目等,以方便学生巩固和测试对新内容的学习。
本书原作者Abraham Silberschatz、Peter B. Galvin和Greg Gagne都是操作系统界的大师级人物。《操作系统概念》系列版本一向是操作系统经典图书中的经典,从第1版至今,可以说完美记录了操作系统的发展历史。这一版本延续了之前版本的优点,并加入了操作系统的新发展动向,相信读者能从中受益。
本书既适合作为计算机专业大三、大四本科学生的教材,也适用于相关专业人员完整理解计算机操作系统原理。建议读者根据自身情况阅读全书或部分章节。
科技图书的翻译一般都力求忠于原著。作为长期从事计算机专业教学的高校教师,总是希望作品能少出错,并能给读者以最大的帮助。但中文实在博大精深,译者水平有限,且时间仓促,翻译过程难免出错,欢迎读者批评指正,在此先表感谢!
本书由郑扣根(浙江大学)、唐杰(南京大学)和李善平(浙江大学)翻译。翻译过程中得到家人的理解与支持,在此表示深深的谢意。
前言
本书是面向操作系统导论课程的教科书,适用于大三、大四学生和一年级研究生,同时也可供工程技术人员参考。本书清晰地描述了操作系统的概念。作为先决条件,我们假设读者熟悉基本数据结构、计算机组成和一种高级语言(如C或Java)。本书第1章包括了学习操作系统所需的硬件知识,还包括大多数操作系统普遍使用的基础数据结构。代码示例主要使用C和Java,不过,即使读者不具有这些语言的全部知识也能理解这些算法。
本书不仅直观描述了概念,而且包括重要的理论结果,但是省略了大部分的形式化证明。每章结尾的推荐读物给出了相关研究论文,其中有的首次提出或证明了这些理论结果,有的提供深入阅读的最新材料。本书通过图形和举例来代替证明,以说明为什么有关结果是真实有效的。
本书描述的基本概念和算法通常用于商用和开源的操作系统。我们的目标是,按照通用的(而非特定的)操作系统来描述这些概念和算法。另外,我们提供了最受欢迎和最具创新的操作系统的大量例子,包括Linux、Microsoft Windows、Apple Mac OS X和Solaris。我们还给出了两个主要移动操作系统(Android和iOS)的示例。
本书的编写综合了我们从事操作系统教学的多年经验以及IEEE计算机协会和ACM共同出版的课程指南。另外,还考虑了多位审稿人员提供的反馈意见,以及以前版本读者和学生的许多意见和建议。
本书内容
本书包括六大部分:
概论。第1章和第2章解释了操作系统是什么,它们能做什么,以及它们是如何设计与构造的。这一部分讨论了操作系统的常见功能是什么,以及操作系统能为用户提供什么。我们不仅讨论PC和服务器的传统操作系统,而且讨论移动设备的操作系统。描述主要以启发和解释为主,避免讨论内部实现细节。因此,这部分适合低年级学生或类似读者,以便了解操作系统是什么而无需关注内部算法细节。
进程管理。第3~6章描述了进程概念和并发,这是现代操作系统的核心。进程是系统内的工作单元。这种系统包括一组并发执行进程,其中一些是操作系统进程(执行系统代码的进程),其余的是用户进程(执行用户代码的进程)。这一部分包括进程调度、进程间通信、进程同步及死锁处理等的方法,还包括线程分析以及多核系统和并行编程的有关分析。
内存管理。第7章和第8章是关于进程执行期间的内存管理的。为了改进CPU的使用率及其对用户的响应速度,计算机必须在内存中同时保存多个进程。内存管理具有很多不同方案,反映了内存管理的各种方法;而特定算法的有效性取决于应用情形。
存储管理。第9~12章描述了现代计算机系统如何处理文件系统、大容量存储和I/O。文件系统提供了一种机制,以对数据和程序进行在线存储与访问。这一部分描述了存储管理的经典内部算法和结构,并且深入讨论了这些算法,比如它们的特性、优点和缺点。由于连到计算机的I/O设备种类如此之多,操作系统需要为应用程序提供大量的功能,以控制这些设备的方方面面。这一部分深入讨论了I/O系统,包括I/O系统设计、接口及系统内部的结构和功能。在许多方面,I/O设备也是计算机中最慢的主要组件。因为设备通常是性能瓶颈,所以这一部分也讨论了I/O设备的性能问题。
保护与安全。第13章和第14章讨论了计算机系统保护与安全的必需机制。操作系统的进程活动必须互相保护,为此,我们必须确保只有获得操作系统适当授权的进程才能使用系统的文件、内存、CPU和其他资源。保护是一种机制,用于控制程序、进程和用户对计算机系统资源的访问,这种机制必须提供指定控制和实施控制的手段。安全机制保护系统存储的信息(数据和代码)的完整性和计算机的物理资源,从而避免未经授权的访问、恶意破坏或修改以及意外引入的不一致。
案例研究。本书的第15章详细研究了Linux操作系统的实际案例。虽然本书前面章节也有Linux的讨论,但是案例研究提供了更多细节。
操作系统概念精要
本书以2012年《操作系统概念》的第9版为蓝本,希望为读者提供一本强调当代操作系统基本概念的教科书。通过关注基本概念,我们相信,学生能够更轻松、更快速地掌握现代操作系统的基本特征。
为了做到这一点,本书删减了《操作系统概念》第9版的如下内容:
删除了深入讨论死锁的第7章,但是在第5章中概述了死锁。
删除了第17章“Windows 7”。
删除了第18章“有影响的操作系统”。
如果你希望更全面地学习操作系统,则可以参阅《操作系统概念》第9版。下面介绍本书所做的更新。
媒体评论
本书是《操作系统概念》的精简版,强调基础概念,更适合本科阶段的教学。书中延续了之前版本的优点并进行了全面更新:理论讲解采用简洁、直观的方式来呈现重要的研究结果,不展开复杂的形式化证明;案例分析涵盖Linux、Windows、Mac OS X、Android、iOS等各大主流系统;代码部分要求读者对C或Java语言有一定的了解;教辅资源同步升级,包括复习题、实践题、编程题、推荐读物、源代码和PPT等(请访问www.hzbook.com查看和下载)。
重点更新
·简化了关于死锁的内容,删除了关于Windows 7的详细案例研究,删除了对一些非主流操作系统的介绍。
·新增关于多核系统和移动计算的内容。
·针对移动设备的大量普及,新增了相关的操作系统、用户界面和内存管理等内容。
·针对大容量存储的发展,新增了固态硬盘等内容。
·更新了进程、线程、同步、内存管理、文件系统、I/O系统、Linux系统等方面的新技术。
·在编程环境方面,同时考虑POSIX、Java和Windows系统。
·更新了大量习题和编程项目。