我读了this回答,我认为我有一个明确的想法。但是this回答让我再次感到困惑。
有人可以让我清楚地了解信号,异常,硬件中断和陷阱之间的区别吗?
此外,我想知道哪些阻止CPU抢占的内核代码?
示例会有所帮助。
答案 0 :(得分:0)
•中断由硬件生成。示例:键盘生成的中断,用于在屏幕上键入字符。 这些本质上是异步的,这意味着处理器在生成中断时不会意识到。这些也称为硬件中断。
•异常:这些是由处理器生成的中断。示例:除以零。这些是同步的,这意味着处理器知道中断的产生。
• Traps :基本上是一条告诉内核从用户模式切换到内核模式的指令。示例:在系统调用期间,TRAP指令将强制内核代表进程在内核(内核模式)内执行系统调用代码。 陷阱和异常通常可互换使用。
•信号:信号由内核生成,并在发生异常时发送给进程。例如,除零指令将导致内核为该过程生成SIGSEGV信号(segfault)。