操作系统是计算机系统的核心系统软件,负责控制和管理整个系统,使之协调工作。本书不仅全面系统地讲述了操作系统的基本概念、原理和方法,而且以当代最流行的操作系统——Windows、UNIX和Linux为例,全面清楚地展现了当代操作系统的本质和特点,使本书的内容具有先进性和适应性。\r\n 本书既注重对操作系统的经典内容的论述,又紧密联系当代流行的设计问题以及当前操作系统的发展方向,可作为大学计算机专业或计算机应用相关专业的本科生教材和参考书,也可供从事计算机方向研究的专业技术人员使用。\r\n
第0章 读者指南 \r\n 0.1 本书概述\r\n 0.2 主题顺序\r\n 0.3 因特网和Web资源\r\n第一部分 背景\r\n 第1章 计算机系统概述 \r\n 1.1 基本构成\r\n 1.2 处理器寄存器\r\n 1.3 指令的执行\r\n 1.4 中断\r\n 1.5 存储器的层次结构\r\n 1.6 高速缓冲存储器\r\n 1.7 I/O通信技术\r\n 1.8 推荐读物和网站\r\n 1.9 关键术语、复习题和习题\r\n 第2章 操作系统概念 \r\n 2.1 操作系统的目标和功能\r\n 2.2 操作系统的发展\r\n 2.3 主要的成就\r\n 2.4 现代操作系统的特征\r\n 2.5 Microsoft Windows概述\r\n 2.6 传统的UNIX系统\r\n 2.7 现代UNIX系统\r\n 2.8 Linux操作系统\r\n 2.9 推荐读物和网站\r\n 2.10 关键术语、复习题和习题\r\n第二部分 进程\r\n 第3章 进程描述和控制 \r\n 第4章 线程、对称多处理和微内核 \r\n 第5章 并发性:互斥和同步 \r\n 第6章 并发性:死锁和饥饿 \r\n 第7章 内存管理 \r\n 第8章 虚拟内存 \r\n 第9章 单处理器调度 \r\n 第10章 多处理器和实时调度 \r\n 第11章 I/O管理和磁盘调度 \r\n 第12章 文件管理 \r\n 第13章 网络 \r\n 第14章 分布式处理、客户/服务器和集群 \r\n 第15章 分布式进程管理 \r\n 第16章 安全 \r\n附录A 并发主题 \r\n附录B 面向对象设计 \r\n附录C 程序设计和操作系统项目 \r\n附录D OSP:一个操作系统项目环境\r\n附录E BACI:BEN-ARI并发程序设计系统\r\n术语表 \r\n参考文献 \r\n索引
操作系统是计算机系统的核心组成部分,同时操作系统课程也是计算机专业教学中的重点专业基础课程。随着计算机技术的高速发展,操作系统的内涵和外延发生了巨大的改变。目前在计算机市场上有不少关于操作系统的书籍,但真正的操作系统经典书籍却很少。由Prentice Hall公司出版的《操作系统——内核与设计原理(第五版)》是William Stallings博士撰写的最新力作。自第一版问世以来,经过William Stallings博士多年的改进与更新,本书已经成为操作系统教材中久经锤炼的经典之作。其第四版还曾经获得美国计算机科学与工程类教学的大奖,得到国内外教育界和科研技术人员的一致好评。为了让国人更好地学习和理解书中广博深入的知识,电子工业出版社出版了此书的中文版。
作为一本操作系统的权威之作,本书的内容全面且重点突出。从总体上看,主要具有以下几个特点:
1. 内容详实。全书共分六大部分,内容涉及操作系统背景和概念以及当今主流的操作系统实例介绍、进程管理、存储器管理、调度、I/O系统和文件系统、分布式系统和安全。而且在每一部分中,对最新的Linux 2.6.x、Windows XP/2003、Solaris等当今主流操作系统实例的具体相关实现进行了深入的分析与讨论。全书几乎覆盖了操作系统的各个重要方面。
2. 原理透彻。全书所提及的原理和算法等都有详细解释和分析,并配有大量例子和插图帮助读者理解,使得读者更容易理解一些比较深奥的道理。本书行文简洁流畅,讲解清晰,为读者深入理解操作系统的原理提供了坚实的理论基础。
3. 精益求精。本书已连续出版五次,但每一新版相对于前一版而言,都对前一版的不足进行了改进,力求尽善尽美。而且还结合当前操作系统的最新进展,增加了新的内容。为了体现当今计算机硬件和网络能力的高速发展对操作系统带来的影响,本书第五版中单独列出了一部分来深入讨论SMP设计及多线程技术、微内核以及操作系统为集群和实时调度所提供的支持。而且在全书的许多部分对Linux 2.6内核的最新技术也做了精辟的分析,这样读者就可以结合Linux 2.6源代码分析以及对Linux操作系统的使用来更深入地了解一个实际操作系统的设计与实现。
4. 难易适中。此书的写作遵循了循序渐进的原则,强调了操作系统的设计问题和基本原理,并配有大量的实例和各种难度的习题和项目设计,并且作者建立了配合本书的教师学生资源网站http://williamstallings.com/OS/OS5e.html,提供了书中没有包含的大量相关信息,这些措施可帮助读者真正了解操作系统的精髓和设计原理,是大家学习和研究操作系统的案头必备之书。
本书不但是高等院校计算机专业操作系统教学的最佳教材之一,而且是从事操作系统应用开发等科研技术人员的必备之书。本书的翻译力求忠于作者的原意。书中的操作系统专业术语后一般都注上了英文原文,书后还提供术语表、中英文对照索引,以方便读者理解。本书由陈渝博士翻译,向勇副教授审校。在本书的翻译过程中,得到了许拥军、高崝、苏杭、阳坚等的许多帮助,在此深表谢意。由于种种原因,书中难免存在错误和不妥之处,恳请读者批评指正。
William Stallings:作为一名咨询人员、演讲者以及17本图书的作者,Willaim Stallings是计算领域的重要人士。本书的第四版获得了2002年度由Text and Academic Authors Association授予的Texty Award,该奖项针对的是年度最佳计算机科学和工程教材。此外,他还获得了大量的其他荣誉。Stallings在MIT获得了计算机科学博士学位。他在ttp://WilliamsStallings.com/StudentSupport.html处维护了一个计算机科学学生资源网站。他在Prentice Hall出版的所有图书均可在Prentice Hall的网站http://www.prenhall.com处找到。
目标
本书是一本关于操作系统的概念、结构和机制的教材,其目的是尽可能清楚和全面地展现当代操作系统的本质和特点。
这是一项具有挑战性的任务。首先,需要为各种各样的计算机系统设计操作系统,包括单用户工作站和个人计算机、中等规模的共享系统、大型计算机和超级计算机以及诸如实时系统之类的专门机器。多样性不仅表现在机器的容量和速度上,而且表现在具体应用和系统支持的需求上;第二,计算机系统正以日新月异的速度发展变化,操作系统设计中的许多重要领域都是新近开始研究的,而关于这些领域以及其他新领域的研究工作仍然在继续着。
尽管存在着多样性和变化快等问题,一些基本概念仍然贯穿始终,当然,这些概念的应用依赖于当前的技术状况和特定的应用需求。本书的目的是对操作系统设计的基本原理提供全面的讨论,并且与当代流行的设计问题以及当前操作系统的发展方向联系起来。
示例系统
本书试图使读者熟悉当代操作系统的设计原理和实现问题,因此单纯讲述概念和理论是远远不够的。为了演示这些概念,同时将它们与真实世界中的设计选择相联系起来,本书选择了三个操作系统作为运行实例:
●Windows XP与Windows 2003:用于个人计算机、工作站和服务器的多任务操作系统。作为一种新型操作系统,它融入了操作系统发展的最新技术,此外,Windows是最先采用面向对象设计原理设计的商业操作系统之一。而本书将涉及Windows最新版本所采用的技术,包括工作站和个人电脑的XP系列,以及服务器的2003系列。
●UNIX:多用户操作系统最初是为小型计算机而设计的,但后来广泛用于从微机到超级计算机的各种机器中。本书包含两种版本的UNIX:UNIX SVR4是一个广泛使用的系统,包括许多最新的特征;Solaris是用得最多的UNIX商业版本,包括多线程和一些其他特征,这在SVR4和大多数其他的UNIX版本中是没有的。
●Linux:一个非常普及且源码开放的UNIX版本。
选择这些系统是由于它们的相关性和代表性,关于这些示例系统的讨论将贯穿于本书的全部内容,而不是集中在某一章或附录部分。因此,在讨论并发性的过程中,将描述每个示例系统的并发机制,并探究各个设计选择的动机。通过这种方法,可以利用真实的例子立即加深对某一特定章节中设计概念的理解。
适合对象
本书是为高等院校师生和专业人员编写的。作为教材,本书对应于计算机科学、计算机工程和电子工程专业一个学期的操作系统课程。书中的专题包括由IEEE和ACM计算机委员会的计算课程联合工作组,为计算机科学专业的本科生推荐的计算机课程(Computer Curricula)2001,同时也包括由上述联合工作组推荐的计算机科学2002联合学位课程指南(Guidelines for Associate-Degree Curricula in Computer Science 2002)。本书还是一本适合自学人员的基础参考书。
本书结构
本书分为六个部分(参见第0章的综述):
●背景
●进程
●存储器
●调度
●输入/输出与文件
●分布式系统与安全
本书具有许多适用于教学的特征,包括使用大量的图和表来阐明一些容易混淆的概念。每一章还包括一些关键术语列表、复习题、下一步学习的建议和相关网站的链接。而且,还为指导教师提供了题库。
为教师和学生提供的Internet服务
本书的网站为教师和学生提供支持,该站点包括一些其他相关站点的链接、书中所有图表的PDF(Adobe Acrobat)格式文档和Internet邮件列表,其Web页位于WilliamStallings.com/OS4e.html,更多信息请参阅前面的“本书的网站”。建立Internet邮件列表可以帮助使用本书的教师相互之间或与作者交流信息、建议和问题。本书中的任何笔误或者疏漏,一经发现将及时在WilliamStallings.com网站上更新,同时还将维护一个地址为WilliamStallings.com/StudentSupport.html的计算机科学学生资源站点。
操作系统项目
对许多教师而言,操作系统课程的一个重要内容是,通过一个项目或一组项目使得学生能够获得身临其境的体验,以加深对课本中概念的理解。本书为课程所包含的项目部分提供了非并行程度的支持,它定义了两个编程项目。教师的网站提供了一些在线参考,可以用来按部就班地指导学生进行项目开发。项目实现的框架被封装在三个软件包中:用于开发操作系统部件的OSP、Nachos以及用于学习并发机制的BACI。此外,教师手册包括一系列小的程序设计项目,每个项目需要一两周的时间,它们覆盖了很宽广的主题范围,可以在任何平台上用任何合适的语言实现,还有一些研究项目和阅读/报告任务。详细信息请参阅附录。
第五版中的新内容
自从本书第四版出版以来的四年时间里,操作系统领域不断发展创新。在这个新的版本中,笔者试图捕获这些变化,以保证本书能够宽广全面地覆盖整个领域。在修订过程时,有很多从事操作系统课程教学工作的教授和相关领域的专业人员对本书的第四版进行了审阅,使得许多地方的叙述更加清楚和严密,图解也得到了进一步的改进,同时,还增加了一些新的“实施现场试验”的问题。 除了改进教学方法、加强用户友好性以外,本书的技术内容也进行了彻底的更新,以反映该领域中的最新变化。其中针对Linux的案例学习得到了显著加强,它基于最新的版本Linux 2.6。Windows的案例学习也得以更新,以便跟踪Windows XP和Windows Server 2003。为了加强清晰性,并发性方面的内容也进行了扩展和修正。本书将一些并发性的内容移到一个新的附录中,同时增加了一个关于竞争条件的新章节。调度部分现在包含了对优先级倒置的相关讨论,而网络部分增加了新的一章讨论套接字API,同时面向对象设计部分也得到了扩展。
无封面