全网唯一标准王
著 操操作作系系统统导导论论 [美] 雷姆兹· H.阿帕希 -杜塞尔( Remzi H.Arpaci-Dusseau ) [美] 安德莉亚· C.阿帕希 -杜塞尔( Andrea C.Arpaci-Dusseau ) 王海鹏 译 人民邮电出版社 北京 内 容 提 要 这是一本关于现代操作系统的书。全书围绕虚拟化、并发和持久性这 3个主要概念展开,介绍了所有 现代系统的主要组件(包括调度、虚拟内存管理、磁盘和 I/O子系统、文件系统 )。 本书共 50章,分为 3个部分,分别讲述虚拟化、并发和持久性的相关内容。本书大部分章节均先提出 特定的问题,然后通过书中介绍的技术、算法和思想来 解决这些问题。作者以对话形式引入所介绍的主题 概念,行文诙谐幽默却又鞭辟入里,力求帮助读者理解操作系统中虚拟化、并发和持久性的原理。 本书内容全面,并给出了真实可运行的代码(而非伪代 码),还提供了相应的练习,适合高等院校相 关专业教师教学和高校学生自学。 ♦ 著 [美] 雷姆兹· H.阿帕希 -杜塞尔( Remzi H.Arpaci-Dusseau ) [ 美] 安德莉亚· C.阿帕希 -杜塞尔( Andrea C.Arpaci- Dusseau ) 译 王海鹏 责任编辑 陈冀康 责任印制 ♦ 人民邮电出版社出版发行 北京市丰台区成寿寺路 11号 邮编 100164 电子邮件 [email protected] 网址 http://www.ptpress.com.cn 固安县铭成印刷有限公司 印刷 ♦ 开本: 800×1000 1/16 印张: 字数: 千字 2019 年 月第 1版 印数: 1 – 2000册 2019 年 月河北第 1次印刷 著作权合同登记号 图字: 01-2017-5038 号 定价: 元 读者服务热线: (010)81055410 印装质量热线: (010)81055316 反盗版热线: (010)81055315 广告经营许可证:京东工商广登字 20170147 号 前前 言言 致本书读者 欢迎阅读本书!我们希望你阅读本书时,就像 我们撰写它时一样开心。本书的英文书 名为《 Operating Systems:Three Easy Pieces 》,这显然是向理查德·费曼( Richard Feynman ) 针对物理学主题创作的、最了不起的一套讲义 [F96]致敬。虽然本书不能达到这位著名物理 学家设定的高标准,但也许足够让你了解什么是操作系统(以及更一般的系统) 。 本书围绕 3个主题元素展开讲解:虚拟化( virtualization )、并发( concurrency )和持久 性( persistence )。对于这些概念的讨论,最终延伸到讨论操作系统所做的大多数重要事情。 希望你在这个过程中体会到一些乐趣。学习新事物很有趣,对吧? 每个主要概念在若干章节中加以阐释,其中大 部分章节都提出了一个特定的问题,然 后展示了解决它的方法。这些章节很简短,尝 试(尽可能地)引用作为这些想法真正来源 的源材料。我们写这本书的目的之一就是厘清 操作系统的发展脉络,因为我们认为这有助 于学生更清楚地理解过去是什么、现在是什么 、将来会是什么。在这种情况下,了解香肠 的制作方法几乎与了解香肠的优点一样重要。 我们在整本书中采用了几种结构,值得在这里介绍一下。 无论何时,在试图解决问题时,我们首先要说明最重要的问题是什么。我们在书中明 确提出关键问题( crux of the problem ),并希望通过本书其余部分提出的技术、算法和思 想来解决。 在许多地方,我们将通过显示一段时间内的行 为来解释系统的工作原理。这些时间线 (timeline)是理解的本质。如果你知道会发生什么,例如,当进程出现页故障时,你就可以 真正了解虚拟内存的运行方式。如果你理解日 志文件系统将块写入磁盘时发生的情况,就 已经迈出了掌握存储系统的第一步。 整本书中有许多“补充”和“提示” ,为主线讲解增添了一些趣味性。 “补充”倾向于 讨论与主要文本相关的内容(但可能不是必要的) ;“提示”往往是一般经验,可以应用于 所构建的系统。 在整本书中,我们使用最古老的教学方法之一——对话( dialogue)。这些对话用于介绍 主要的主题概念,并不时地复习这些内容。这 也让我们得以用更幽默的方式写作。好吧, 你觉得它们是有用还是幽默,完全是另一回事。 在每一个主要部分的开头,我们将首先呈现操作系统提供的抽象( abstraction ),然后在 后续章节中介绍提供抽象所需的机制、策略和 其他支持。抽象是计算机科学各个方面的基 础,因此它在操作系统中也是必不可少的。 2 前 言 在所有的章节中, 我们尝试使用可能的真实代码 (real code),而非伪代码 (pseudocode )。 因此书中几乎所有的示例,你应该能够自己输 入并运行它们。在真实系统上运行真实代码 是了解操作系统的最佳方式,因此建议你尽可能这样做。 在本书的各个部分, 我们提供了一些作业 (homework ),确保你进一步理解书中的内容。 其中许多作业都是对操作系统的一些模拟( simulation )程序。你应该下载作业,并运行它 们,以此来测验自己。作业模拟程序具有以下 特征:通过给它们提供不同的随机种子,你 可以产生几乎无限的问题,也可以让模拟程序 为你解决问题。因此,你可以一次又一次地 自测,直至很好地理解了这些知识。 本书最重要的附录是一组项目( project),可供你通过设计、测试和实现自己的代码, 来了解真实系统的工作原理。所有项目(以及上面提到的代码示例)都是使用 C编程语言 (C programming language )[KR88]编写的。 C是一种简单而强大的语言,是大多数操作系统 的基础,因此值得添加到你的工具库中。附录 中含有两种类型的项目(请参阅在线附录中 的想法)。第一类是系统编程( system programming )项目。这些项目非常适合那些不熟悉 C 和UNIX,并希望学习如何进行底层 C编程的人。第二类基于在麻省理工学院开发的实际操 作系统内核,称为 xv6 [CK+08] 。这些项目非常适合已经有一些 C的经验并希望深入研究操 作系统的学生。在威斯康星大学,我们以 3 种不同的方式开课:系统编程、 xv6编程,或两 者兼而有之。 致使用本书作为教材的教师 这门课程很适合 15周的学期, 因此授课教师可以在合理的深度范围内讲授大部分主题。 如果是 10周的学期,那么可能需要从每个部分中删除一些细节。还有一些章节是关于虚拟 机监视器的,我们通常会在学期的某个时候插 入这些章节,或者在虚拟化部分的结尾处, 抑或在接近课程结束时作为补充。 本书中的并发主题比较特别。它是许多操作系 统书籍中靠前的主题,而在本书中是直 到学生了解了 CPU和内存的虚拟化之后才开始讲解的。根据我们近 15年来教授本课程的经 验,学生很难理解并发问题是如何产生的,或 者很难理解人们试图解决它的原因。那是因 为他们还不了解地址空间是什么、进程是什么 ,或者为什么上下文切换可以在任意时间点 发生。然而,一旦他们理解了这些概念,那么 再引入线程的概念和由此产生的问题就变得 相当容易,或者至少比较容易。 我们尽可能使用黑板(或白板)来讲课。在着 重强调概念的时候,我们会将一些主要 的想法和例子带进课堂,并在黑板上展示它们 。讲义有助于为学生提供需要解决的具体问 题。在着重强调实践的时候,我们就将笔记本 电脑连上投影仪,展示实际代码。这种授课 风格特别适用于并发的内容以及所有的讨论部 分。在这些部分中,教师可以向学生展示与 其项目相关的代码。我们通常不使用幻灯片来 讲课,但现在我们已经为那些喜欢这种演示 风格的人提供了一套教学 PPT。 如果你想要任何这些教学辅助材料,请给 [email protected] 发电子邮件。 最后一个请求:如果你使用免费在线章节,请 直接访问作者网站。这有助于我们跟踪 前 言 3 使用情况(过去几年中,本书英文版下载超过 100万次!),并确保学生获得最新和最好的 版本。 致使用本书上课的学生 如果你是读这本书的学生,那么我们很荣幸能够提供一些材料来帮助你学习操作系统的 知识。我们至今还能够回想起我们使用过的一些教科书(例如, Hennessy 和Patterson 的著作 [HP90],这是一本关于计算机架构的经典著作) ,并希望这本书能够成为你美好的回忆之一。 你可能已经注意到,这本书英文版的在线版本是免费的,并且可在线获取①。有一个 主要原因:教科书一般都太贵了。我们希望,这本书是新一波免费材料中的第一本(指电子版),以帮助那些寻求知识的人—— 无论他们来自哪个国家,或者他们愿意花多少钱购 买一本书。 我们也希望,在可能的情况下,向你 指出书中大部分材料的原始资料—— 多年来的优 秀论文和人物,他们让操作系统领域成为现在 的样子。想法不会凭空产生,它们来自聪明

.pdf文档 操作系统导论

文档预览
中文文档 5 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共5页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
操作系统导论 第 1 页 操作系统导论 第 2 页 操作系统导论 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2026-01-06 12:00:32上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。