在《深入理解计算机系统》这本书中,在“异常控制流”这一章节中,在 Linux/IA32 系统中的异常这一小节中,先提到了除 0 是一种故障(也就是四种异常中的第三种)。 然后又在“信号”这一小节中,提到当一个进程试图除以 0 ,那么内核就会发送给它一个 SIGFPE 信号。
那么我的疑问是:
1
sagaxu 2017-04-16 14:43:14 +08:00 via Android
除 0 是软中断的一种,跟其它软中断一样处理
信号是内核对进程的 notify ,中断是硬件对内核的 notify |
2
codingyue 2017-04-16 17:27:45 +08:00 via iPhone
1. cpu 执行到除以 0 指令会给内核发送 interrupt 。根据内核的异常表,找到对应的异常处理函数,然后发信号 SIG 给进程
|