2011年5月12日
摘要: 当进程A在用户态下执行着,出现了系统调用(int 0x80),CPU转而执行_system_call(system_call.s L80)中断处理过程, _system_call 保持了进程A在用户态时的现场信息,然后执行call _sys_call_table(, %eax, 4)指令,当执行完本指令时,进程 A请求的系统调用已经完成了,_system_call剩下的代码是该系统调用中断处理过程的退出阶段。 当执行到jne reschedule时,处于内核态的进程A希望主动放弃CPU,实现进程调度,reschedule代码如下: reschedule: pushl $ret_from_sy. 阅读全文
posted @ 2011-05-12 06:26 将军之盾 阅读(967) 评论(0) 推荐(1) 编辑