前 言Operating System Concepts, Ninth Edition操作系统是任何计算机系统的重要组成部分。同样,操作系统课程也是计算机科学教育的基本组成部分。随着计算机逐渐渗透到日常生活的每个方面,从汽车的嵌入设备到政府和跨国公司的先进规划工具,这个领域发展迅猛。然而,其中的基本概念仍然比较清晰,这些概念就是本书讨论的基础。
本书是面向操作系统导论课程的教科书,适用于大三、大四学生和一年级研究生,同时也可供工程技术人员参考。本书清晰地描述了操作系统的概念。作为先决条件,我们假设读者熟悉基本数据结构、计算机组成和一种高级语言(如C或Java)。本书第1章包括了学习操作系统所需的硬件知识,还包括大多数操作系统普遍使用的基础数据结构。代码示例主要使用C和Java,不过,即使读者不具有这些语言的全部知识也能理解这些算法。
本书不仅直观描述了概念,而且包括重要的理论结果,但是省略了大部分的形式化证明。每章结尾的推荐读物给出了相关研究论文,其中有的首次提出或证明了这些理论结果,有的提供深入阅读的最新材料。本书通过图形和举例来代替证明,以说明为什么有关结果是真实有效的。
本书描述的基本概念和算法通常用于商用和开源的操作系统。我们的目标是,按照通用的(而非特定的)操作系统来描述这些概念和算法。另外,我们提供了最受欢迎和最具创新的操作系统的大量例子,包括Linux、Microsoft Windows、Apple Mac OS X和Solaris。我们还给出了两个主要移动操作系统(Android和iOS)的示例。
本书的编写综合了我们从事操作系统教学的多年经验以及IEEE计算机协会和ACM共同出版的课程指南。另外,还考虑了多位审稿人员提供的反馈意见,以及以前版本读者和学生的许多意见和建议。
本书内容本书包括六大部分:
概论。第1章和第2章解释了操作系统是什么,它们能做什么,以及它们是如何设计与构造的。这一部分讨论了操作系统的常见功能是什么,以及操作系统能为用户提供什么。我们不仅讨论PC和服务器的传统操作系统,而且讨论移动设备的操作系统。描述主要以启发和解释为主,避免讨论内部实现细节。因此,这部分适合低年级学生或类似读者,以便了解操作系统是什么而无需关注内部算法细节。
进程管理。第3~7章描述了进程概念和并发,这是现代操作系统的核心。进程是系统内的工作单元。这种系统包括一组并发执行进程,其中一些是操作系统进程(执行系统代码的进程),其余的是用户进程(执行用户代码的进程)。这一部分包括进程调度、进程间通信、进程同步及死锁处理等的方法,还包括线程分析以及多核系统和并行编程的有关分析。
内存管理。第8章和第9章是关于进程执行期间的内存管理的。为了改进CPU的使用率及其对用户的响应速度,计算机必须在内存中同时保存多个进程。内存管理具有很多不同方案,反映了内存管理的各种方法;而特定算法的有效性取决于应用情形。
存储管理。第10~13章描述了现代计算机系统如何处理文件系统、大容量存储和I/O。文件系统提供了一种机制,以对数据和程序进行在线存储与访问。这一部分描述了存储管理的经典内部算法和结构,并且深入讨论了这些算法,比如它们的特性、优点和缺点。由于连到计算机的I/O设备种类如此之多,操作系统需要为应用程序提供大量的功能,以控制这些设备的方方面面。这一部分深入讨论了I/O系统,包括I/O系统设计、接口及系统内部的结构和功能。在许多方面,I/O设备也是计算机中最慢的主要组件。因为设备通常是性能瓶颈,所以这一部分也讨论了I/O设备的性能问题。
保护与安全。第14章和第15章讨论了计算机系统保护与安全的必需机制。操作系统的进程活动必须互相保护,为此,我们必须确保只有获得操作系统适当授权的进程才能使用系统的文件、内存、CPU和其他资源。保护是一种机制,用于控制程序、进程和用户对计算机系统资源的访问,这种机制必须提供指定控制和实施控制的手段。安全机制保护系统存储的信息(数据和代码)的完整性和计算机的物理资源,从而避免未经授权的访问、恶意破坏或修改以及意外引入的不一致。
案例研究。本书的第16章和第17章以及附录A和附录B(见www.wiley.com/college/silberschatz),详细研究了操作系统的实际案例,包括Linux、Windows 7、FreeBSD和Mach。虽然本书前面章节也有Linux和Windows 7的讨论,但是案例研究提供了更多细节。比较这两个非常不同的系统的设计是特别有意义的。最后的第18章简要地描述了其他一些有影响的操作系统。
第9版在编写本书第9版时,我们考虑了影响操作系统的两个重要领域的新发展:
多核系统移动计算为了强调这两个重要领域的新发展,我们在新版本中融入了相关讨论。另外,我们几乎重写了每章内容以反映最新变化,并且删除不再有趣或有关的材料。
我们也做了大量调整,例如删除了实时系统一章,但在其他章节中整合了对这些系统的适当讨论。大多数调整都是基于我们讲授操作系统课程的经验。
下面简要描述各章的主要修改:
第1章,导论,包括关于多处理器和多核系统以及内核数据结构的新内
......