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