资讯库 厂家库 产品库 / 咨询专线:400-6668-369 / 服务时间:8:00-18:00(非节假日)
中国办公家具产业基地,专业助力办公家具单位采购。

从时钟中断返回

时钟中断处理程序继续执行,由于在2.2.5节中它已经跳转到ret_from_sys_call,所以从ret_from_sys_call:开始执行,准备处理当前进程接收到的信号(关于信号的内容,我们将在第7章中详细说明)。
 
然而,因为现在当前进程是进程0,所以不对它的信号做任何处理(这种情况仅限于进程0,其余进程都要处理信号),直接就跳转到标号3处,将刚才压栈的寄存器数值还原,并返回,到这里,此次时钟中断结束。如图2-23所示,请读者注意与图2-22比较进程0内核栈的变化。
 
 
 
图2-23 时钟中断返回
 
执行代码如下:
 
//代码路径:kernel/system_call.s:
 
……
 
ret_from_sys_call:
 
movl_current,%eax
 
cmpl_task,%eax
 
je3f
 
……
 
3:popl%eax
 
popl%ebx
 
popl%ecx
 
popl%edx
 
pop%fs
 
pop%es
 
pop%ds
 
iret
 
正如2.2.5节中所述,由于现在进程0的时间片并没有削减完,这一个条件就决定,当前并不发生进程切换。于是进程0将继续执行,它将继续完成创建进程1的工作。
 

相关资讯