操作系统 (CS162)
课程全称: Operating Systems and System Programming
官方网站: cs162.org
📖 课程简介
CS162 是操作系统的核心课程,通过实现经典操作系统 Pintos 的各个组件,深入理解操作系统的工作原理。课程注重实践,每个 Project 都需要编写大量 C 代码。
核心主题
- 线程与同步: 线程创建、互斥锁、条件变量、信号量
- 进程调度: 调度算法、优先级、多级反馈队列
- 内存管理: 虚拟内存、页表、页面置换算法
- 文件系统: 文件抽象、目录结构、缓冲缓存
- 系统调用: 用户态与内核态切换、系统调用实现
🧪 Labs/Projects 列表
| Project | 主题 | 状态 |
|---|---|---|
| Lab 0 | C 语言与环境配置 | ⏳ 待完成 |
| Project 1 | 线程 (Threads) | ⏳ 待完成 |
| Project 2 | 用户程序 (User Programs) | ⏳ 待完成 |
| Project 3 | 虚拟内存 (Virtual Memory) | ⏳ 待完成 |
| Project 4 | 文件系统 (File Systems) | ⏳ 待完成 |
📚 学习资源
官方资料
推荐阅读
- Operating Systems: Three Easy Pieces by Remzi Arpaci-Dusseau
- MIT 6.S081 课程
🎯 学习目标
通过本课程的 Lab 实战,将掌握:
- 并发编程: 熟练使用锁、信号量等同步原语
- 系统设计: 理解操作系统各模块的设计与实现
- 调试技能: 学会调试复杂的多线程、内核级程序
- 性能分析: 理解系统性能瓶颈与优化方法