《操作系统实战 45 讲》笔记 3——进程
24 | 活动的描述:到底什么是进程?
内核控制进程,重点是上下文切换。
内核线程
用户线程
X64TSS 涉及一个 CPU 约定硬件操作:当发生中断时,切换的栈地址就是该结构体中 rsp0 指向的地址。
一个疑问:
为什么用户栈也分配在内存视图的“内核区”?
25 | 多个活动要安排(上):多进程如何调度?
对于进程切换,彭老师用了“偷天换日”这个词,太形象了!
进程首次执行会调用 retnfrom_first_sched 函数,该函数不会返回到调用它的 __to_new_context 函数中,而是直接运行新建进程的相关代码。
原因:在第 24 讲有新进程初始的内核栈的内容,并没有 save_to_new_context 函数的调用路径,所以执行运行即可。
26 | 多个活动要安排(下):如何实现进程的等待与唤醒机制?
本讲的“等待”和“唤醒”机制在第 8 讲信号量 sem_t 中有使用。
思考题的答案应该是:不会,因为只有调了 krlschedul 函数才会切换进程。
版权声明: 本文为 InfoQ 作者【袁世超】的原创文章。
原文链接:【http://xie.infoq.cn/article/4717254e17bbd2d36fc2b680f】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论