进程上下文的保存与恢复
发生中断时,如果处理机的当前运行级低于该中断级别,则处理机将响应该中断。核心对中断的处理过程分为以下几步:
保存当前进程的寄存器上下文;
确定中断源;
查找中断向量;
执行该中断处理程序;
恢复前一上下文层。
引起进程上下文切换的原因
引起进程上下文切换的原因是由于进程调度程序选中了一个新的进程运行。
在UNIX系统中,由于采用了可剥夺的调度方式,因而引起进程调度的原因有时间片完、当前进程执行了sleep例程、进程执行完等,它们都会导致进程上下文的切换。
进程上下文切换的步骤
进程上下文的切换过程可分成以下四步:
确定是否要进行上下文切换;
利用save_context函数(UNIX系统中实现进程上下文保存的函数)保存当前进程的上下文;
由调度程序按一定的策略选择一个在内存中就绪的进程;
用resume_context函数恢复被选中进程的上下文,此后便进入新进程的上下文中执行。