Yanyan's Wiki 软件工程研究入门 (2022)

操作系统:设计与实现 (2021 春季学期)

📢 通知

请大家自觉不要把自己的实验作业代码公开。如果你本着 “炫耀” 的态度公布,那你的代码很可能写得很烂不值得炫耀。公布代码会在很多层面上伤害使用你代码的学弟和学妹。

  • 课程概述教科书与参考资料生存指南AbstractMachine视频回看
    • Hard Deadline: 2021 年 7 月 31 日 23:59:59。
    • 毕业班同学:需要在考试周结束前完成 M1-M4, L0-L2,并依据此实验评分。
  • 课时:每周一 14:00–16:00、周四 10:00–12:00;上课地点:仙 I-103
  • 成绩:期末考试 (40%), 期中测验 (10%), 系统实验 [L] (25%), 编程实验 [M] (25%)
  • 助教:欧先飞 (ouxianfei@smail.nju.edu.cn)

课程讲义

  1. 操作系统概述 | C 操作系统上的程序 | [M1] pstree | [L0] amgame
  2. 并发 多处理器编程:从入门到放弃 | C 操作系统也是程序 | [M2] libco
  3. 并发 阅读理解并发程序 | C Hacking Programs
  4. 并发 并发控制:互斥 (1) | C 并发数据结构 | [L1] pmm
  5. 并发 并发控制:互斥 (2) | C 操作系统中的自旋锁
  6. 并发 并发控制:同步
  7. 并发 并发编程模型 | C 与并发 Bugs 相处
  8. 虚拟化 进程抽象 | Fork 杂谈 | [M3] sperf | [L2] kmt
  9. 虚拟化 虚存抽象 | C xv6 中的进程 | [M4] crepl
  10. 闭卷随堂期中测验 (5.6 周四); 题型:简答 + 并发编程
    • 免修不免考的同学如不能到课,期末成绩以 50% 计入总评
  11. 虚拟化 C 可执行文件 | C 动态链接和加载
  12. 虚拟化 处理器调度 | C 终端、Shell 和 Hello World
  13. 持久化 1-Bit 的存储 | I/O 设备和驱动
  14. 持久化 文件系统 API | 文件系统实现 | [M5] frecov | [L3] vfs
  15. 持久化 持久数据的可靠性 | C xv6 文件系统
  16. 课程总结
| [[L2] kmt](OS2020_L2) | C 调试操作系统内核 [![](/static/img/slides.png){width="18px"}]() 4. 并发 6. 虚拟化 [进程抽象](OS2020_Process) [![](/static/img/slides.png){width="18px"}](OS2020_8.slides) | | [[M3] sperf](OS2020_M3) | [[L2] kmt](OS2020_L2) 7. 虚拟化 [虚存抽象](OS2020_VM) [![](/static/img/slides.png){width="18px"}](OS2020_9.slides) | C 链接与加载 [![](/static/img/slides.png){width="18px"}](OS2020_C5.slides) | [[M4] crepl](OS2020_M4) 8. 虚拟化 [处理器调度 (1)](OS2020_Sched) [![](/static/img/slides.png){width="18px"}](OS2020_10.slides) 9. 虚拟化 [处理器调度 (2)](OS2020_Sched) [![](/static/img/slides.png){width="18px"}](OS2020_11.slides) | [请页调度](OS2020_DemandPaging) [![](/static/img/slides.png){width="18px"}](OS2020_12.slides) 10. [期中测验 (随堂)](OS2020_Midterm) | C 终端和 Shell [![](/static/img/slides.png){width="18px"}](OS2020_C6.slides) | C 调试 OS 内核 [![](/static/img/slides.png){width="18px"}](OS2020_C7.slides) | C 信号和 Job Control [![](/static/img/slides.png){width="18px"}](OS2020_C9.slides) 11. 持久化 [存储介质](OS2020_BitStorage) [![](/static/img/slides.png){width="18px"}](OS2020_13.slides) 12. 持久化 [输入/输出设备](OS2020_IODev) [![](/static/img/slides.png){width="18px"}](OS2020_14.slides) | [设备驱动程序](OS2020_IODev) [![](/static/img/slides.png){width="18px"}](OS2020_15.slides) | [[M5] frecov](OS2020_M5) 13. 持久化 [文件系统 API](OS2020_FSAPI) [![](/static/img/slides.png){width="18px"}](OS2020_16.slides) | [文件系统实现](OS2020_FSImpl) [![](/static/img/slides.png){width="18px"}](OS2020_17.slides) | [[L3] vfs](OS2020_L3) 14. 持久化 [持久数据的可靠性](OS2020_RAID) [![](/static/img/slides.png){width="18px"}](OS2020_18.slides) | [崩溃一致性](OS2020_CrashConsistency) [![](/static/img/slides.png){width="18px"}](OS2020_19.slides) | [[M6] libkvdb](OS2020_M6) 15. OS: Three Easy Pieces [![](/static/img/slides.png){width="18px"}](OS2020_20.slides) | 操作系统设计与实现 [![](/static/img/slides.png){width="18px"}](OS2020_21.slides) 16. 嵌入式和分布式系统 [![](/static/img/slides.png){width="18px"}](OS2020_22.slides) | 课程总结 [![](/static/img/slides.png){width="18px"}](OS2020_23.slides) | [[L4] uproc]()
Creative Commons License    苏 ICP 备 2020049101 号