学习操作系统这门课我推荐您一本经典教材

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个部分,分别讲述虚拟化、并发和持久性的相关内容。本书大部分章节均先提出特定的问题,然后通过书中介绍的技术、算法和思想来解决这些问题。作者以对话形式引入所介绍的主题概念,行文诙谐幽默却又鞭辟入里,力求帮助读者理解操作系统中虚拟化、并发和持久性的原理。

本书内容全面,并给出了真实可运行的代码(而非伪代码),还提供了相应的练习,适合高等院校相关专业教师教学和高校学生自学。

以上是关于学习操作系统这门课我推荐您一本经典教材的主要内容,如果未能解决你的问题,请参考以下文章

推荐一本matlab入门教材

《人月神话》读后感

c语言程序设计容易挂科吗

这几门课哪几门最好学?哪几门要有信号与系统基础的(要用的傅里叶变化,卷积啥的)?

作业九:总结

生物信息学书籍分享