进程调度相关
进程调度
- 调度时机 -  中断处理过程(时钟中断、IO中断、系统调用和异常)中直接调用schedule(),或者返回用户态时,通过检查need_scheduled的标志来调用schedule()。 
-  用户态进程只能 被动调度;内核线程可以直接调用schedule()进行进行进程切换,也可以在中断处理过程中进行调度,也就是既支持主动调度又支持被动调度。
 
-  
- 进程切换过程 - 挂起CPU上执行的进程,与中断保存现场是不同的,中断前后是在同一个进程上下文中,只是由用户态转向了内核态执行。
- 进程上下文包含了进程执行所需要的所有信息:用户地址空间(程序代码,数据,用户堆栈等)、控制信息(进程描述符,内核堆栈)、硬件上下文(与中断保存硬件上下文方法不同)
- schedue()函数选择一个新的进程来运行,并调用- context_switch进行上下文切换,这个宏调用- switch_to(汇编代码)来进行关键上下文切换
 
