OS-李治军-L11-核心级线程
核心级线程
核心级线性的重要性:
多核想要充分发挥作用,一定要支持核心级线程。
多个线性要能被MMU分配到多个内核当中,同时运行,这就是并行,与之前的并发是相对的。
并行是说,可以同时吃饭和吃面
并发是说,吃一下饭,吃一下面。

与用户级线程相比,核心级线程具有不同:
用户级线程用两个栈
而核心级线程要有两套栈,每套栈包含:用户栈和内核栈,毕竟你要进入内核,在内核中使用函数。

一旦有了指令INT,从用户栈变换为内核栈,这个由硬件完成。
而IRET的时候,返回,根据拉这个链子就找到了原来的用户栈(就是在内核栈中保存了用户栈的信息)。

内核线程switch_to的五段论:
在线程S中调用INT-》进入内核调用资源-》等待资源、切换线程-》找到目标线程T的tcb-》完成内核栈的切换-》执行iret、返回用户栈。


内核线程的Create

对比


浙公网安备 33010602011771号