cs162
概述
本课程旨在教授操作系统设计及在其他计算机系统中出现的操作系统概念。涵盖的主题包括操作系统概念、系统编程、网络与分布式系统以及存储系统,具体内容涉及多程序系统(进程、进程间通信与同步)、内存分配(分段、分页)、资源分配与调度、文件系统、基础网络(套接字、分层架构、API接口及可靠性)事务处理机制以及安全性与隐私保护等。
课程网站
由于最新课程视频资源权限问题,采用资源最全的fall 2020 的课程,课程网站
先决条件
CS 61A、CS 61B、CS 61C和CS 70,或同等课程。 课程假设你们要么已经掌握了这些课程中应涵盖的材料,要么愿意在必要时学习这些材料。我们不会在课堂上花时间讲解这些内容。然而,或许比正式先修课程更重要的是,调试大型程序的经验和成熟度、设计和实现有用抽象的能力以及一般性的计算问题解决能力。这门课将锻炼你们在这些方面的技能。 如果你们觉得需要额外复习这些先修知识,我们推荐使用以下资源:
- 为了在本课程中更好地复习概率论知识,请阅读CS 70讲义第15、16、17、18和19节。
- Hennessy, John L. 和 Patterson, David A. 的《计算机体系结构:定量方法》第五版。虽然这本书的主要内容深入探讨了计算机体系结构的知识点远超本课程的要求,但附录部分提供了一些先修知识的优秀概述。请特别关注以下章节: 2.1及B.1 - B.4(可以跳过B.3中的第六个优化)回顾缓存、虚拟内存和存储层次结构;C.1 - C.2以CS 61C的水平回顾CPU流水线相关内容。
教材
我们正在使用安德森和达林(A&D)编写的教材 《Operating Systems: Principles and Practice》。强烈推荐阅读此教材。此外,还将有一些非该教材的额外阅读材料,这些材料可在线免费获取,并将在课程网站的“阅读材料”栏目中提供链接供您查阅。
强烈推荐
- 《Operating Systems: Principles and Practice (2nd Edition)》
值得推荐的
- 《Operating Systems: Three Easy Pieces》
补充的
- 《Linux Kernel Development (3rd Edition)》
作业
本课程的作业和项目是获得系统构建实践经验的绝佳途径。授课老师们努力保持工作量可控,并专注于学习概念,而非繁琐的工作。 所有作业和项目将通过GitHub提交并自动评分。个人和小组将拥有课程提供的GitHub仓库。
项目
课程将使用Pintos教育操作系统进行所有项目。本课程的项目提供了深入的操作系统和分布系统设计与实现的体验,项目的实践经验对课程至关重要。如果你计划在毕业后从事软件或硬件开发工作,你几乎肯定需要知道如何团队合作。最近的计算机科学毕业生几乎都表示,他们希望在伯克利学到的最重要的事情之一就是团队合作的能力。因此,这些项目你需要组成四人小组来完成。
课程相关资源
📄️ syllabus-课程大纲
CS 162 fall 2020 | 课程大纲