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

本周阅读材料

教科书

教科书 Operating Systems: Three Easy Pieces:

  • 第 15 章 - Address Translation
  • 第 18 章 - Introduction to Paging
  • 第 19 章 - Translation Lookaside Buffers
  • 第 20 章 - Advanced Page Tables
  • 第 21 章 - Swapping: Mechanisms
  • 第 22 章 - Swapping: Policies
  • 第 23 章 - Complete VM Systems

本周有大量的阅读材料——主要是和虚拟内存相关的。我们已经在课堂上为大家建立了基础的认识和模型,例如进程并不 “持有” 所有的页面,而是操作系统持有进程的页面,但操作系统会为每个进程布置一个虚拟内存翻译函数 $f$。即便概念简单,但其中涉及的细节是相当多的;一方面大家会在实验中体验它,另一方面,静下来阅读教科书也是很有必要的。不用着急——你可以在接下来的几周时间里阅读它们。

阅读理解示例代码

教科书中有相当多的示例代码;不过我们也准备了一个 “证明” copy-on-write 存在性的例子:cow-test.c,能够帮助直接 “触摸” 到 copy-on-write。之前的 mmap-alloc.c,也 “证明” 了 demand paging 的存在。

经过本周的课程,大家把 fork() 状态机的复制理解成创建 “平行宇宙”,这帮助我们实现 dfs-fork.c,确保你阅读手册理解我们是如何完成进程同步的。

Creative Commons License    苏 ICP 备 2020049101 号