22. 进程的实现

背景回顾:我们已经通过 thread-os 理解了上下文切换的机制和 “线程” 操作系统,并且能在一个处理器上实现多个执行流在中断时的切换。实际上,我们已经非常接近操作系统上的进程了——只要加上虚拟内存 (VR 眼镜),我们就能实现进程了。

本讲内容:xv6 操作系统和进程的实现。

22.1 进程与虚拟地址空间

22.2 UNIX 和 xv6

Take-away Messages

Everything is a state machine; 而操作系统在中断/系统调用时,“封存” 了所有进程的状态机,并且可以将它们重新加载到 CPU 上执行。顺着这个思路,我们不难看到 UNIX 操作系统和系统调用的 “直接” 实现。而进程不过是 “线程” 加上了一个地址翻译函数。

课后习题/编程作业

1. 阅读材料

📚阅读材料

教科书 Operating Systems: Three Easy Pieces

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