总结与展望

本章我们介绍了进程和线程的概念,由于进程管理的资源事实上仅有虚拟内存,而它用一个 satp\text{satp} 寄存器的值即可描述。因此我们弱化进程概念,只研究线程。但是要注意二者的区别:对于实际上的内核,情况可完全不是这样!

接着,处于要将线程切换出去的目的,我们讨论如何表达线程的运行状态,以及如何用栈实现线程状态的保存与恢复,进而实现了线程切换。

最终,我们初始化一个临时线程(注意利用 __trapret 初始化寄存器的小技巧),并从启动线程切换过去并切换回来。

如果同时有多个线程需要执行,我们需要公平合理地分配 CPU 资源给这些线程,让它们都能被运行到,这就是下一章所要讲的线程调度

results matching ""

    No results matching ""