- 进程合作:多进程共同完成一个任务。
L15-一个实际的schedule函数
- 以 linux-0.11/kernel/sched.c 中的 schedule 函数为研究对象。
L14-CPU调度策略
- 对于不同的需求,会有不同的CPU调度策略。
L12-内核级线程的实现
- 内核级线程实现即对 L11 章节的内容进行代码实现,由 L11 章节所述,内核级线程的切换涉及到一个线程中用户栈与内核栈之间的切换以及线程与线程之间的切换,接下来将详细讲述这两部分的代码实现过程。
L11-内核级线程
内核级线程和用户级线程的区别:
如果说用户级线程是使用了两个栈,那么内核级线程就是使用了两套栈(一套栈中包含用户栈和内核栈)。
用户级线程切换是先TCB切换,然后根据TCB切换用户栈;而核心级线程是先TCB切换,然后根据TCB来切换一套栈。
内核级线程中是由内核来管理TCB,由内核来负责切换线程;而在用户级线程中则由Yield函数来切换线程。
用户级线程中线程的切换是在用户态切换的,而内核级线程中线程的切换是在内核态切换的。