基本信息
- 原书名:Operating Systems: Internals and Design Principles (6th Edition)
- 原出版社: Prentice Hall

【插图】

编辑推荐
选择Windows Vista、UNIX和Linux三个操作系统作为示例,以帮助读者熟悉当代操作系统的设计原理和实现问题
·新增嵌入式操作系统一章,讨论了嵌入式操作系统的基本特点,并给出了两个实例系统:TinyOS和eCos。
·扩展和更新了并发的相关内容,并增加了有关游戏软件中多处理器调度设计问题的实例。
·补充动画演示、模拟项目和编程项目,便于培养学生的动手实践能力。
·改进了插图,增加大量新的 “现场测试”(field-tested)型家庭作业。
内容简介
计算机书籍
《操作系统:精髓与设计原理(原书第6版)》内容简介:操作系统是计算机系统的核心系统软件,负责控制和管理整个系统,使之协调工作。《操作系统:精髓与设计原理(原书第6版)》不仅全面地讲述了操作系统的基本概念、原理和方法,还清楚地展现了当代操作系统的本质和特点。全书分为八个部分,由浅入深地介绍了计算机系统、操作系统、进程描述和控制、线程、微内核、并发性、内存管理、虚拟内存、单处理器调度、多处理器和实时调度、I/O管理和磁盘调度、文件管理、嵌入式操作系统、计算机安全技术以及分布式操作系统等内容。
《操作系统:精髓与设计原理(原书第6版)》内容丰富,具有很强的实用价值,适合作为高等院校计算机及相关专业本科生的操作系统课程教材,也可供专业技术人员参考。
作译者
目录
出版者的话
译者序
前言
第0章 读者指南
0.1 本书概述
0.2 读者和教师的学习路线图
0.3 Internet和Web资源
第一部分 背景
第1章 计算机系统概述
1.1 基本构成
1.2 处理器寄存器
1.2.1 用户可见寄存器
1.2.2 控制和状态寄存器
1.3 指令的执行
1.3.1 取指令和执行指令
1.3.2 I/0函数
1.4 扣断
1.4.1 中断和指令周期
1.4.2 中断处理
译者序
本书围绕操作系统的概念、结构和机制,进行了系统全面的阐述,尽可能清晰地展示当代操作系统的本质和特点。特别是新版的内容有了整体更新,以反映操作系统的进展变化。
本书有如下特色:
1)作者将第6版交给从事相关教学和研究的教授们审阅,使本书在教育学及用户友善性方面有了新的改进,叙述更加清晰、紧凑,改进了插图,增加大量“现场测试”(field-tested)型家庭作业。
2)本书以Windows Vista为例介绍了Windows操作系统,有关材料由微软公司Windows内核与体系结构组的架构师Dave Probert博士提供。
3)全书始终将Windows Vista和Linux作为操作系统实例使用,尤其是由Dave Probert博士补充的对这两个操作系统的技术处理方式的对比表格分布在相关章节,对读者有极大的帮助。
4)本书新增了嵌入式操作系统的内容。尽管目前嵌入式操作系统远远多于通用计算机系统,但是很少有教材把这个主题安排成单独的一章。本书讨论了嵌入式操作系统的基本特点,并给出了两个实例系统:TinyOS和eCos。
5)在第5版的基础上扩展了安全相关的内容,包括安全威胁和安全技术。同时,在本书的第3、7和12章也针对相关主题补充了涉及安全的讨论。
6)本书第6版还增加了许多新的习题和练习,这些都有助于读者深入理解操作系统的精髓。
作为教授操作系统课程的教师,译者认为要清楚理解操作系统概念,让学生动手参加实践项目或参与一些研究项目是十分重要的。本书补充了下列内容:
1)动画为理解现代操作系统中的复杂机制提供了强大的工具。在动画展示方面,本书提供大量动画,涉及调度、并发控制、缓存命中以及进程生命周期等内容。在书中适当的对应之处,对动画展示进行了突出标记,可以使学生在学习本书的过程中,在恰当的位置使用动画。
2)本书提供了由美国德州大学圣安东尼奥分校开发的7个模拟项目,这些模拟项目都是与操作系统设计中的关键领域密切相关的。在模拟项目基础上给学生布置了其他作业项目,例如,学生可以使用这套模拟工具包,对操作系统设计特性进行分析。这些模拟工具是用Java编写的,既可以作为一个Java应用在本地运行,也可以通过浏览器在线运行。
3)本书还提供了三个系列的编程项目供学生参考和练习。
参加本书翻译、审阅和校对的还有桂尼克、孙剑、张顺廷、王刚、刘晗、冯涛、白光冬、孔俊俊、古亮、畅明、张琳、赵敬峰、张旦峰、陈子文、雷吉科等,特别是桂尼克对安全部分的翻译校对工作贡献很大。在此对他们的贡献表示诚挚的感谢。
由于译者水平有限,译文中必定会存在一些不足或错误,欢迎广大读者批评指正。
译者
前言
本书是一本关于操作系统的概念、结构和机制的教材,其目的是尽可能清楚和全面地展现当代操作系统的本质和特点。
这是一项具有挑战性的任务。首先,需要为各种各样的计算机系统设计操作系统,包括单用户工作站和个人计算机、中等规模的共享系统、大型计算机和超级计算机以及诸如实时系统之类的专门机器。多样性不仅表现在机器的容量和速度上,而且表现在具体应用和系统支持的需求上。其次,计算机系统正以日新月异的速度发展变化,操作系统设计中的许多重要领域都是新近开始研究的,而关于这些领域以及其他新领域的研究工作仍然在继续着。
尽管存在着多样性和变化快等问题,一些基本概念仍然贯穿始终。当然,这些概念的应用依赖于当前的技术状况和特定的应用需求。本书的目的是对操作系统设计的基本原理提供全面的讨论,并且与当代流行的设计问题以及当前操作系统的发展方向联系起来。
示例系统
本书试图使读者熟悉当代操作系统的设计原理和实现问题,因此单纯讲述概念和理论是远远不够的。为了说明这些概念,同时将它们与真实世界中不得不做出的设计选择相联系,本书选择了三个操作系统作为示例:
● Windows Vista:用于个人计算机、工作站和服务器的多任务操作系统。它融合了很多操作系统发展的最新技术,此外,Windows是最早采用面向对象原理设计的重要的商业操作系统之一。本书涵盖了在Windows最新版本Vista中所采用的技术。
● UNIX:最初是为小型计算机而设计的多用户操作系统,但后来广泛用于从微机到超级计算机的各种机器中。本书包含若干版本的UNIX。FreeBSD结合了很多反映当代水平的功能,是一款得到广泛应用的操作系统。Solaris是一款应用广泛的商业版UNIX系统。
● Linux:一款目前非常普及且源码开放的UNIX版本。
选择这些系统是由于它们的相关性和代表性。关于这些示例系统的讨论贯穿全书,而不是集中在某一章或附录部分。因此,在讨论并发性的过程中,将描述每个示例系统的并发机制,并探究各个设计选择的动机。通过这种方法,可以利用真实的例子立即加深对某一特定章节中设计概念的理解。
读者对象
本书是为高等院校师生和专业人员编写的。作为教材,本书对应于计算机科学、计算机工程和电子工程专业本科一个学期的操作系统课程。书中的专题包括由IEEE和ACM计算机委员会的计算课程联合工作组为计算机科学专业的本科生推荐的计算机课程(Computer Curricula 2001),同时也包括由上述联合工作组推荐的计算机科学2002联合学位课程指南(Guidelines for Associate-Degree Curricula in Computer Science 2002)中推荐的专题。本书还是一本基础参考书,同时也适于自学。
本书结构
本书分为八个部分(参见第0章的综述):背景、进程、内存、调度、输入/输出与文件、嵌入式系统、安全、分布式系统。
本书具有许多适用于教学的特征,包括使用大量的动画和图表来阐明一些容易混淆的概念。每一章还包括一些关键术语列表、复习题、课外练习、进一步学习的建议和相关网站的链接。而且,还为指导教师提供了题库。
课程参考资料
以下的教辅资料可以通过访问受密码保护的Pearson网站的教师资源区域获得 (www.prenhall.com/ stallings):
● 参考答案:章末复习题和习题的解决方案。
● 课件:所有章节的课件,可以用于课堂教学。
● PDF文件:本书中全部图和表的副本。
书摘
USENET新闻组本书及相关Web站点包含了大量的资料,下面将给读者提供一个总体介绍。
0.1 本书概述
本书共分为八个部分:
第一部分背景:提供关于计算机组织与系统结构的综述,重点讲述与操作系统设计相关的主题,并且概述了本书的其余部分操作系统(OS)的各个主题。
第二部分进程:详细分析进程、多线程、对称多处理(SMP)和微内核,还讨论了单一系统中的并发机制,重点讲述了互斥和死锁。
第三部分存储器:全面讲述存储器管理技术,包括虚拟存储器。
第四部分调度:对多种进程调度方法进行分析比较,同时还讨论线程调度、SMP调度和实时调度。
第五部分输入/输出与文件:分析操作系统中有关输人/输出函数的控制,特别是磁盘输入/输出,它是决定系统性能的关键所在。本部分还给出了关于文件管理的综述。
第六部分嵌入式系统:嵌入式系统的数量远远多于通用计算系统,因此存在许多独特的嵌入式操作系统。本章讨论了嵌入式操作系统的一般性原理,并且介绍了两个实例系统:TinyOS和eCoso第七部分安全:对涉及计算机和网络安全的威胁和防护机制进行了概述。
第八部分分布式系统:分析计算机系统网络化技术的主要趋势,包括TCP/IP、客户/服务器计算和集群,同时还介绍分布式系统开发中的一些主要设计领域。