信号与异常对硬件中断与陷阱

时间:2017-08-03 13:05:25

标签: linux kernel cpu interrupt

我读了this回答,我认为我有一个明确的想法。但是this回答让我再次感到困惑。

有人可以让我清楚地了解信号,异常,硬件中断和陷阱之间的区别吗?

此外,我想知道哪些阻止CPU抢占的内核代码?

示例会有所帮助。

1 个答案:

答案 0 :(得分:0)

中断由硬件生成。示例:键盘生成的中断,用于在屏幕上键入字符。 这些本质上是异步的,这意味着处理器在生成中断时不会意识到。这些也称为硬件中断。

异常:这些是由处理器生成的中断。示例:除以零。这些是同步的,这意味着处理器知道中断的产生。

Traps :基本上是一条告诉内核从用户模式切换到内核模式的指令。示例:在系统调用期间,TRAP指令将强制内核代表进程在内核(内核模式)内执行系统调用代码。  陷阱和异常通常可互换使用。

信号:信号由内核生成,并在发生异常时发送给进程。例如,除零指令将导致内核为该过程生成SIGSEGV信号(segfault)。