学习操作系统这门课我推荐您一本经典教材
Posted 人邮异步社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习操作系统这门课我推荐您一本经典教材相关的知识,希望对你有一定的参考价值。
如果你正在读本科操作系统课程,那么应该已经初步了解了计算机程序运行时做的事情。
无论何时,在试图解决问题时,我们首先要说明最重要的问题是什么。我们在书中明确提出关键问题(crux of the problem),并希望通过本书其余部分提出的技术、算法和思想来解决。
在许多地方,我们将通过显示一段时间内的行为来解释系统的工作原理。这些时间线(timeline)是理解的本质。如果你知道会发生什么,例如,当进程出现页故障时,你就可以真正了解虚拟内存的运行方式。如果你理解日志文件系统将块写入磁盘时发生的情况,就已经迈出了掌握存储系统的第一步。
如果你是读这本书的学生,那么我们很荣幸能够提供一些材料来帮助你学习操作系统的知识。这是一本关于操作系统原理的经典书籍,希望这本书能够成帮助到你。
整本书中有许多“补充”和“提示”,为主线讲解增添了一些趣味性。“补充”倾向于讨论与主要文本相关的内容(但可能不是必要的);“提示”往往是一般经验,可以应用于所构建的系统。
在整本书中,我们使用最古老的教学方法之一——对话(dialogue)。这些对话用于介绍主要的主题概念,并不时地复习这些内容。这也让我们得以用更幽默的方式写作。好吧,你觉得它们是有用还是幽默,完全是另一回事。
在每一个主要部分的开头,我们将首先呈现操作系统提供的抽象(abstraction),然后在后续章节中介绍提供抽象所需的机制、策略和其他支持。抽象是计算机科学各个方面的基础,因此它在操作系统中也是必不可少的。
在所有的章节中,我们尝试使用真实代码(real code),而非伪代码(pseudocode)。因此书中几乎所有的示例,你应该能够自己输入并运行它们。在真实系统上运行真实代码是了解操作系统的最佳方式,因此建议你尽可能这样做。
在本书的各个部分,我们提供了一些作业(homework),确保你进一步理解书中的内容。其中许多作业都是对操作系统的一些模拟(simulation)程序。你应该下载作业,并运行它们,以此来测验自己。作业模拟程序具有以下特征:通过给它们提供不同的随机种子,你可以产生几乎无限的问题,也可以让模拟程序为你解决问题。因此,你可以一次又一次地自测,直至很好地理解了这些知识。
本书最重要的附录是一组项目(project),可供你通过设计、测试和实现自己的代码,来了解真实系统的工作原理。所有项目(以及上面提到的代码示例)都是使用C编程语言(C programming language)[KR88]编写的。C是一种简单而强大的语言,是大多数操作系统的基础,因此值得添加到你的工具库中。附录中含有两种类型的项目(请参阅在线附录中的想法)。第一类是系统编程(system programming)项目。这些项目非常适合那些不熟悉C和UNIX,并希望学习如何进行底层C编程的人。第二类基于在麻省理工学院开发的实际操作系统内核,称为xv6 [CK+08]。这些项目非常适合已经有一些C的经验并希望深入研究操作系统的学生。在威斯康星大学,我们以 3 种不同的方式开课:系统编程、xv6编程,或两者兼而有之。
《操作系统导论》豆瓣评分:9.4
详细目录
- 第1章 关于本书的对话
- 第2章 操作系统介绍
- 第1部分 虚拟化
- 第3章 关于虚拟化的对话
- 第4章 抽象:进程
- 第5章 插叙:进程API
- 第6章 机制:受限直接执行
- 第7章 进程调度:介绍
- 第8章 调度:多级反馈队列
- 第9章 调度:比例份额
- 第10章 多处理器调度(高级)
- 第11章 关于CPU虚拟化的总结对话
- 第12章 关于内存虚拟化的对话
- 第13章 抽象:地址空间
- 第14章 插叙:内存操作API
- 第15章 机制:地址转换
- 第16章 分段
- 第17章 空闲空间管理
- 第18章 分页:介绍
- 第19章 分页:快速地址转换(TLB)
- 第20章 分页:较小的表
- 第21章 超越物理内存:机制
- 第22章 超越物理内存:策略
- 第23章 VAX/VMS虚拟内存系统
- 第24章 内存虚拟化总结对话
- 第2部分 并发
- 第25章 关于并发的对话
- 第26章 并发:介绍
- 第27章 插叙:线程API
- 第28章 锁
- 第29章 基于锁的并发数据结构
- 第30章 条件变量
- 第31章 信号量
- 第32章 常见并发问题
- 第33章 基于事件的并发(进阶)
- 第34章 并发的总结对话
- 第3部分 持久性
- 第35章 关于持久性的对话
- 第36章 I/O设备
- 第37章 磁盘驱动器
- 第38章 廉价冗余磁盘阵列(RAID)
- 第39章 插叙:文件和目录
- 第40章 文件系统实现
- 第41章 局部性和快速文件系统
- 第42章 崩溃一致性:FSCK和日志
- 第43章 日志结构文件系统
- 第44章 数据完整性和保护
- 第45章 关于持久的总结对话
- 第46章 关于分布式的对话
- 第47章 分布式系统
- 第48章 Sun的网络文件系统(NFS)
- 第49章 Andrew文件系统(AFS)
- 第50章 关于分布式的总结对话
- 附录A 关于虚拟机监视器的对话
- 附录B 虚拟机监视器
- 附录C 关于监视器的对话
- 附录D 关于实验室的对话
- 附录E 实验室:指南
- 附录F 实验室:系统项目
- 附录G 实验室:xv6项目
这是一本关于现代操作系统的书。全书围绕虚拟化、并发和持久性这3个主要概念展开,介绍了所有现代系统的主要组件(包括调度、虚拟内存管理、磁盘和I/O子系统、文件系统 )。
本书共50章,分为3个部分,分别讲述虚拟化、并发和持久性的相关内容。本书大部分章节均先提出特定的问题,然后通过书中介绍的技术、算法和思想来解决这些问题。作者以对话形式引入所介绍的主题概念,行文诙谐幽默却又鞭辟入里,力求帮助读者理解操作系统中虚拟化、并发和持久性的原理。
本书内容全面,并给出了真实可运行的代码(而非伪代码),还提供了相应的练习,适合高等院校相关专业教师教学和高校学生自学。
以上是关于学习操作系统这门课我推荐您一本经典教材的主要内容,如果未能解决你的问题,请参考以下文章