新書推薦:
《
旷野人生:吉姆·罗杰斯的全球投资探险
》
售價:NT$
345.0
《
希腊人(伊恩·莫里斯文明史系列)
》
售價:NT$
845.0
《
世界巨变:严复的角色(王中江著作系列)
》
售價:NT$
500.0
《
宋初三先生集(中国思想史资料丛刊)
》
售價:NT$
990.0
《
天生坏种:罪犯与犯罪心理分析
》
售價:NT$
445.0
《
新能源材料
》
售價:NT$
290.0
《
传统文化有意思:古代发明了不起
》
售價:NT$
199.0
《
亚述:世界历史上第一个帝国的兴衰
》
售價:NT$
490.0
內容簡介:
本书既是关于操作系统概念、结构和原理的教材,目的是尽可能清楚与全面地展示现代操作系统的本质和特点;又是讲解操作系统的经典教材,不仅系统地讲述了操作系统的基本概念、原理和方法,而且以当代流行的操作系统Windows 10、UNIX、Android、Linux为例,展现了当代操作系统的本质和特点。全书共分背景知识、进程、内存、调度、输入输出和文件、嵌入式系统六部分,内容包括:计算机系统概述,操作系统概述,进程描述和控制,线程,并发:互斥和同步,并发:死锁和饥饿,内存管理,虚拟内存,单处理器调度,多处理器、多核和实时调度,IO管理和磁盘调度,文件管理,嵌入式操作系统,虚拟机,操作系统安全,云与物联网操作系统。
關於作者:
William Stallings,美国圣母大学电气工程专业学士,麻省理工学院计算机科学专业博士。William Stallings已出版图书近20种,含修订版在内共出版图书40种,内容涉及计算机安全、计算机网络和计算机体系结构。在多家期刊上发表了大量论文,包括《IEEE学报》《ACM计算评论》和《密码术》。13次荣获教材与学术作者协会颁发的最佳计算机科学教科书奖。在计算机科学领域工作的30多年,William Stallings一直是一位技术贡献者、技术管理者和多家高科技公司的主管;针对许多计算机和操作系统,设计和实现了基于TCPIP与基于OSI的协议套件。
William Stallings,美国圣母大学电气工程专业学士,麻省理工学院计算机科学专业博士。William Stallings已出版图书近20种,含修订版在内共出版图书40种,内容涉及计算机安全、计算机网络和计算机体系结构。在多家期刊上发表了大量论文,包括《IEEE学报》《ACM计算评论》和《密码术》。13次荣获教材与学术作者协会颁发的最佳计算机科学教科书奖。在计算机科学领域工作的30多年,William Stallings一直是一位技术贡献者、技术管理者和多家高科技公司的主管;针对许多计算机和操作系统,设计和实现了基于TCPIP与基于OSI的协议套件。
目錄 :
第一部分 背景知识
第1章 计算机系统概述 1
1.1 基本构成 2
1.2 微处理器的发展 4
1.3 指令的执行 4
1.4 中断 7
1.5 存储器的层次结构 18
1.6 高速缓存 21
1.7 直接内存存取 25
1.8 多处理器和多核组织结构 26
1.9 关键术语、复习题和习题 30
1A 两级存储器的性能特征 33
第2章 操作系统概述 40
2.1 操作系统的目标和功能 41
2.2 操作系统的演化 45
2.3 主要成就 55
2.4 现代操作系统的特征 64
2.5 容错性 67
2.6 多处理器和多核操作系统设计
考虑因素 70
2.7 微软Windows系统简介 73
2.8 传统UNIX系统 80
2.9 现代UNIX系统 82
2.10 Linux 85
2.11 Android 90
2.12 关键术语、复习题和习题 99
第二部分 进程
第3章 进程描述和控制 101
3.1 什么是进程 103
3.2 进程状态 105
3.3 进程描述 120
3.4 进程控制 129
3.5 操作系统的执行 135
3.6 UNIX SVR4进程管理 138
3.7 小结 143
3.8 关键术语、复习题和习题 143
第4章 线程 148
4.1 进程和线程 149
4.2 线程的分类 155
4.3 多核和多线程 162
4.4 Windows进程和线程管理 167
4.5 Solaris线程和SMP管理 174
4.6 Linux进程和线程管理 178
4.7 Android进程和线程管理 183
4.8 Mac OS X的GCD技术 187
4.9 小结 189
4.10 关键术语、复习题和习题 190
第5章 并发:互斥和同步 195
5.1 互斥:软件方法 198
5.2 并发原理 204
5.3 互斥:硬件支持 213
5.4 信号量 216
5.5 管程 229
5.6 消息传递 235
5.7 读者写者问题 242
5.8 小结 246
5.9 关键术语、复习题和习题 247
第6章 并发:死锁和饥饿 261
6.1 死锁原理 262
6.2 死锁预防 271
6.3 死锁避免 272
6.4 死锁检测 278
6.5 一种综合的死锁策略 280
6.6 哲学家就餐问题 281
6.7 UNIX并发机制 285
6.8 Linux内核并发机制 287
6.9 Solaris线程同步原语 296
6.10 Windows并发机制 298
6.11 Android进程间通信 302
6.12 小结 303
6.13 关键术语、复习题和习题 304
第三部分 内存
第7章 内存管理 311
7.1 内存管理需求 312
7.2 内存分区 316
7.3 分页 327
7.4 分段 330
7.5 小结 332
7.6 关键术语、复习题和习题 332
7A 加载和链接 335
第8章 虚拟内存 342
8.1 硬件和控制结构 343
8.2 操作系统软件 360
8.3 UNIX和Solaris内存管理 379
8.4 Linux内存管理 385
8.5 Windows内存管理 389
8.6 Android内存管理 391
8.7 小结 392
8.8 关键术语、复习题和习题 393
第四部分 调度
第9章 单处理器调度 397
9.1 处理器调度的类型 398
9.2 调度算法 402
9.3 传统UNIX调度 424
9.4 小结 426
9.5 关键术语、复习题和习题 427
第10章 多处理器、多核和实时调度 432
10.1 多处理器和多核调度 433
10.2 实时调度 446
10.3 Linux调度 461
10.4 UNIX SVR4调度 464
10.5 UNIX FreeBSD调度 466
10.6 Windows调度 470
10.7 小结 472
10.8 关键术语、复习题和习题 472
第五部分 输入输出和文件
第11章 IO管理和磁盘调度 477
11.1 IO设备 478
11.2 IO功能的组织 480
11.3 操作系统设计问题 483
11.4 IO缓冲 486
11.5 磁盘调度 489
11.6 RAID 496
11.7 磁盘高速缓存 505
11.8 UNIX SVR 4 IO 509
11.9 Linux IO 512
11.10 Windows IO 516
11.11 小结 518
11.12 关键术语、复习题和习题 519
第12章 文件管理 522
12.1 概述 523
12.2 文件组织和访问 529
12.3 B树 533
12.4 文件目录 536
12.5 文件共享 541
12.6 记录组块 542
12.7 辅存管理 544
12.8 UNIX文件管理 552
12.9 Linux虚拟文件系统 557
12.10 Windows文件系统 561
12.11 Android文件系统 566
12.12 小结 567
12.13 关键术语、复习题和习题 568
第六部分 嵌入式系统
第13章 嵌入式操作系统 571
13.1 嵌入式系统 572
13.2 嵌入式操作系统的特性 577
13.3 嵌入式Linux 581
13.4 TinyOS 587
13.5 关键术语、复习题和习题 597
第14章 虚拟机 599
14.1 虚拟机概念 600
14.2 虚拟机管理程序 603
14.3 容器虚拟化 607
14.4 处理器问题 614
14.5 内存管理 616
14.6 输入输出管理 617
14.7 VMware ESXi 619
14.8 微软Hyper-V与Xen系列 622
14.9 Java虚拟机 623
14.10 Linux VServer虚拟机架构 624
14.11 小结 627
14.12 关键术语、复习题和习题 627
第15章 操作系统安全 629
15.1 入侵者与恶意软件 630
15.2 缓冲区溢出 634
15.3 访问控制 642
15.4 UNIX访问控制 650
15.5 操作系统加固 653
15.6 安全维护 657
15.7 Windows安全 658
15.8 小结 663
15.9 关键术语、复习题和习题 664
第16章 云与物联网操作系统 667
16.1 云计算 668
16.2 云操作系统 676
16.3 物联网 692
16.4 物联网操作系统 696
16.5 关键术语和复习题 703
附录A 并发主题 705
附录B 编程和操作系统项目 719
参考文献 727
內容試閱 :
前言
第九版新增内容
自本书第八版出版以来,操作系统领域一直都在不断地发展。第九版试图在反映这些发展的同时,保持操作系统领域的广泛性。修订本书时,从事教学和研究的许多教授审阅了第九版,因此新版中许多地方的叙述更清晰、更紧凑。
除有利于教学和阅读外,书中的内容也因应操作系统领域的进展做了整体更新,并扩展了教师和学生支持。主要变化如下:
? 更新了Linux的内容。为反映Linux内核的最新变化,更新和扩展了第八版后的Linux内容。
? 更新了Android的内容。为反映Android内核的最新变化,更新和扩展了第八版后的Android内容。
? 新增了虚拟化方面的内容。完全改写了关于虚拟机的章节,更好地组织了内容,加入了更广泛的新内容。此外,新增加了一节关于容器使用方面的内容。
? 新增了云操作系统的内容。新增了云操作系统的介绍,包括云计算概述、云操作系统原理和需求,以及流行开源云操作系统OpenStack。
? 新增了物联网操作系统的内容。新增了物联网操作系统的介绍,包括物联网概述、物联网操作系统原理和需求,以及流行开源物联网操作系统RIOT。
? 更新和扩展了嵌入式操作系统的内容。本章实质性的修改和扩展内容包括:
扩展了嵌入式系统章节,增加了微控制器和深度嵌入式系统的介绍。
扩展和更新了嵌入式操作系统的概述部分。
扩展了嵌入式Linux的内容,新增了关于流行嵌入式Linux系统Clinux的介绍。
? 并发。在项目手册中增加了新项目,以便更好地帮助学生理解并发的原理。
目标
本书是一本关于操作系统概念、结构和原理的教材,目的是尽可能清楚与全面地展示现代操作系统的本质和特点。
这是一项具有挑战性的任务。首先,需要为各种各样的计算机系统设计操作系统,包括嵌入式系统、智能手机、单用户工作站和个人计算机、中等规模的共享系统、大型计算机和超级计算机,以及诸如实时系统之类的专用机器。多样性不仅体现在机器的容量和速度上,而且体现在具体应用和系统支持的需求上。其次,计算机系统正以日新月异的速度发展和变化,操作系统设计中的许多重要领域都是最近才开始研究的,并且关于这些领域及其他新领域的研究工作仍在进行。
尽管存在多样性和变化快等问题,但有些基本概念仍然保持不变。当然,这些概念的应用依赖于当前的技术状况和特定的应用需求。本书的目的是全面讨论操作系统设计的基本原理,并将现代流行的设计问题与当前操作系统的发展方向关联起来。
实例系统
本书的目的是让读者熟悉现代操作系统的设计原理和实现问题,因此单纯地讲述概念和理论远远不够。为了说明这些概念,同时将它们与真实世界中不得不做出的设计选择相关联,本书选择了4个操作系统作为实例:
? Windows:用于个人计算机、工作站和服务器的多任务操作系统,融入了很多操作系统发展的最新技术。此外,Windows是最早采用面向对象原理进行设计的重要商业操作系统之一。本书涵盖了Windows最新版本(包括Windows 10)采用的技术。
? Android:Android是为嵌入式设备特别是手机量身定做的,主要是为了满足嵌入式环境的独特需求。本书介绍了Android的内核信息。
? UNIX:最初是为小型计算机设计的多用户操作系统,但后来广泛用于从微型计算机到超级计算机的各种机器中。本书采用若干版本的UNIX作为实例。FreeBSD融合了很多的现代特征,是一个广泛应用的操作系统;Solaris是一个广泛应用的商用UNIX系统。
? Linux:一个非常普及且源代码开放的UNIX版本。
选择这些操作系统的原因是它们之间存在相关性,同时它们也具有代表性。关于这些实例系统的讨论贯穿全书,而非集中于某章或附录部分。因此,在讨论并发性时,会描述每个实例系统的并发机制,并探讨各种设计选择的动机。采用真实的例子可加深读者对相关章节中设计概念的理解。为方便起见,读者也可以在在线文档中查阅所有实例系统的资料。
支持ACMIEEE计算机科学课程体系2013
本书的读者是大学生和专业技术人员,可作为计算机科学、计算机工程和电气工程专业本科生一学期或两学期操作系统课程的教材。新版符合ACMIEEE计算机科学课程体系2013(CS2013)最新草案版(2013年12月)的要求。在CS2013推荐的课程体系中,操作系统(OS)是计算机科学的主干课程。CS2013将所有课程内容分为三类,即核心类1(含课程体系中的所有专题)、核心类2(含所有或几乎所有专题)、选修类(深度和广度更大)。在操作系统领域,CS2013含有核心类1的2个专题、核心类2的4个专题及选修类的6个可选专题,每个专题下都含有一些子专题。本书涵盖了CS2013列出的三类课程中的所有专题和子专题。
表P.1中给出了本书对操作系统知识领域的支持情况。对于每个专题下的子专题清单,读者可参阅文件网站box.comOS9e上的文件CS2013-OS.pdf。
表P.1 本书对CS2013中操作系统知识领域的覆盖情况
专题 本书的覆盖情况
操作系统概述(核心类1) 第2章:操作系统概述
操作系统原理(核心类1) 第1章:计算机系统概述
第2章:操作系统概述
并发(核心类2) 第5章:并发互斥和同步
第6章:并发:死锁和饥饿
附录A:并发主题
第19章:分布式进程管理
(续表)
专题 本书中的覆盖情况
调度与分派(核心类2) 第9章:单处理器调度
第10章:多处理器、多核和实时调度
存储管理(核心类2) 第7章:内存管理
第8章:虚拟内存
安全与保护(核心类2) 第15章:操作系统安全
虚拟机(选修类) 第14章:虚拟机
设备管理(选修类) 第11章:IO管理和磁盘调度
文件系统(选修类) 第12章:文件管理
实时与嵌入式系统(选修类) 第10章:多处理器、多核和实时调度
第13章:嵌入式操作系统
书中与Android相关的例子
容错(选修类) 2.5节:容错性
系统性能评估(选修类) 书中与存储管理、调度及其他领域相关的性能问题
本书结构
本书分为六部分:
1. 背景知识
2. 进程
3. 内存
4. 调度
5. 输入输出和文件
6. 嵌入式系统(嵌入式操作系统、虚拟机、操作系统安全、云与物联网操作系统)
为便于说明,书中含有大量的图表,每章末尾给出了关键术语、复习题、习题;书后给出了常用的缩略词表和参考文献。此外,本书可为教师提供题库。
教师支持资源
本书的主要目的是成为操作系统课程的有效教学工具,这体现在本书的结构和补充材料中。以下是便于教师教学的补充材料:
? 参考答案:提供了每章末复习题和习题的答案。
? 项目手册:对前言中列出的所有项目给出了项目布置建议。
? PowerPoint课件:所有章节的课件,可用于课堂教学。
? PDF文件:给出了本书中的全部图表。
? 测试题库:按章给出了测试题,并附有单独的答案。
? 教学大纲示范:本书的内容很多,因此很难在一学期内全部讲授。教学大纲示范告诉教师如何在有限的时间内使用本书。这些大纲示范是根据使用本书上一版的教师的实际教学经验总结形成的。
所有支持材料均可在本书的教师资源中心(IRC)找到。需要这些材料的教师,可通过培生公司的网站www.pearsonhighered.comstallings下载。要访问IRC,可联系本地销售代表 。
操作系统项目和其他学生练习
对许多教师而言,操作系统课程的一项重要任务是,通过一个或多个项目来加深学生对概念的理解。本书在课程中加入了一个项目,因为这个项目得到了众多的支持。本书的在线部分提供两个编程项目。此外,在通过培生公司得到的教师支持资源中,不仅包括分配和组织各个项目的方式,而且包括针对不同项目和特殊任务的手册。教师可布置如下任务:
? OS161项目:见后面的介绍。
? 模拟项目:见后面的介绍。
? 信号量项目:旨在帮助学生理解并发的概念,包括竞争条件、饥饿和死锁。
? 内核项目:IRC提供了两组不同的Linux内核编程项目及一组Android内核编程项目的完整支持。
? 编程项目:见后面的介绍。
? 研究项目:研究特定专题的网上项目和报告撰写。
? 阅读报告任务:让学生阅读后完成报告或作业的论文。
? 写作任务:便于学习的写作任务清单。
? 讨论专题:课堂、聊天室和消息板上所用的专题,加深学生的理解和协作。
此外,本书还为教师和学生提供一个研究并发机制的软件包BACI。
这些项目和学生练习可丰富教师的教学内容,教师和学生也可根据自己的需要对其进行裁剪,详见附录B。
OS161
第九版支持基于OS161的主动学习部分。OS161是一个教学用操作系统,越来越多的人已将其作为操作系统内核教学的首选平台,目的是既让学生体验真实操作系统的工作方式,又不会被相当复杂的成熟操作系统如Linux压垮。与部署得最多的操作系统比较,OS161的体量很小(仅约20000行代码和注释),因此学生很容易在理解整个代码的基础上进行二次开发。
IRC包括如下内容:
1.教师可上传到课程服务器上的供学生下载的html文件压缩包。
2.帮助学生使用OS161的入门手册。
3.供学生实践使用的OS161练习。
4.供教师使用的习题解答。
5.教材中的相应位置会说明这些项目,学生阅读相关内容后可完成相应的OS161项目。
模拟项目
IRC提供了涵盖操作系统设计关键内容的7个模拟项目。学生可以使用这套模拟工具包分析操作系统的设计特性。这些模拟工具是用Java编写的,既可作为Java应用程序在本地运行,又可在浏览器上在线运行。IRC中含有学生所用的作业,这些作业演示了实施步骤和结果。
编程项目
新版教材支持编程项目。编程项目有两个:一是开发一个shell程序,即命令解释器;二是开发教材在线部分中介绍的进程分派程序。IRC为开发程序提供了所需的