操作系统:设计与实现 (2023 春季学期)
⚠️ 注意事项
本课程内容、大纲、考核方式与平行班不同 ,请仔细阅读课程说明。
- 课程概述;教科书与参考资料;生存指南;AbstractMachine;视频回看
- 课时:周二 10:00-12:00、周四 14:00-16:00
- 成绩:期末考试 (40%), 期中测验 (10%), 系统实验 [L] (25%), 编程实验 [M] (25%)
- Office Hours: TBD (What are office hours?)
- 助教:TBD
课程讲义
(Under construction 🚧)
1. [操作系统概述](slides/1.slides)
| [操作系统上的程序](slides/2.slides)
| [阅读材料](notes/1)
| [[M1] pstree](labs/M1)
| [[L0] amgame](labs/L0)
2. 并发
[多处理器编程](slides/3.slides)
| [理解并发程序执行](slides/4.slides)
| [阅读材料](notes/2)
| [[M2] libco](labs/M2)
3. 并发
[并发控制:互斥](slides/5.slides)
| [并发控制:同步](slides/6.slides)
| [阅读材料](notes/3)
| [[L1] pmm](labs/L1)
4. 并发
[真实世界的并发编程](slides/7.slides)
| [并发 Bug 和应对](slides/8.slides)
| [阅读材料](notes/4)
5. [操作系统的状态机模型](slides/9.slides)
| [状态机模型的应用](slides/10.slides)
| [阅读材料](notes/5)
6. 虚拟化
[操作系统上的进程](slides/11.slides)
| [进程的地址空间](slides/12.slides)
| [阅读材料](notes/6)
| [[M3] sperf](labs/M3)
| [[L2] kmt](labs/L2)
7. 虚拟化
[系统调用和 UNIX Shell](slides/13.slides)
| [C 标准库的实现](slides/14.slides)
| [随堂测验](Midterm)
| [阅读材料](notes/7)
8. 虚拟化
[A `fork()` in the road](slides/15.slides)
| [阅读材料](notes/8)
9. 虚拟化
[可执行文件](slides/16.slides) | [可执行文件的加载](slides/17.slides)
| [阅读材料](notes/9)
| [[M4] crepl](labs/M4)
10. 虚拟化
[xv6 代码导读](slides/18.slides) | [实现上下文切换](slides/19.slides)
| [阅读材料](notes/10)
| [[L3] uproc](labs/L3)
11. 虚拟化
[处理器调度](slides/20.slides)
| [操作系统设计](slides/21.slides)
| [阅读材料](notes/11)
12. [极限速通操作系统实验](slides/22.slides)
13. 持久化
[存储设备原理](slides/23.slides)
| [输入输出设备](slides/24.slides)
| [阅读材料](notes/12)
14. 持久化
[设备驱动程序](slides/25.slides)
| [文件系统 API](slides/26.slides)
| [阅读材料](notes/13)
15. 持久化
[FAT 和 UNIX 文件系统](slides/27.slides)
| [持久数据的可靠性](slides/28.slides)
| [阅读材料](notes/14)
| [[M5] frecov](labs/M5)
| [[L4] vfs](labs/L4)
16. 持久化
[xv6 文件系统实现](slides/29.slides)
| [现代存储系统](slides/30.slides)
| [阅读材料](notes/15)
17. [Android 系统](slides/31.slides)
| [课程总结](slides/32.slides)