- 论坛徽章:
- 0
|
在学习Understanding the Linux Kernel一书时,遇到如下的问题:
个人理解:
1. 当Exception发生时,硬件不会将IF清0,
2. 同时在entry.s中的Exception Handler的汇编中也并没有看到将Preemption Disable。
3.
下面一段出自该书的4.5.2. Entering and Leaving the Exception Handler Page 150页
As already explained, the names of the C functions that implement exception handlers always consist of the prefix do_ followed by the handler name. Most of these functions invoke the do_trap() function to store the hardware error code and the exception vector in the process descriptor of current, and then send a suitable signal to that process:
current->thread.error_code = error_code;
current->thread.trap_no = vector;
force_sig(sig_number, current);
小弟的疑问是:
如果在调用do_trap()之前发生了Preemption,那么do_trap()不就发送给其他Process signal了吗?
麻烦各位大大指点 |
|