Linux 信号vs异常vs硬件中断vs陷阱

Linux 信号vs异常vs硬件中断vs陷阱,linux,kernel,cpu,interrupt,Linux,Kernel,Cpu,Interrupt,我读了答案,我想我有了一个清晰的想法。但那个答案又让我困惑了 有人能给我一个信号,异常,硬件中断和陷阱之间的区别清晰的图片吗 此外,我想知道内核代码的块CPU抢占中的哪一个 示例将非常有用。•中断是由硬件生成的。示例:键盘生成的在屏幕上键入字符的中断。 它们本质上是异步的,这意味着处理器不知道何时会生成中断。这些也被称为硬件中断 •异常:这些是处理器产生的中断。示例:除以零。这些本质上是同步的,这意味着处理器知道中断的产生 •陷阱:基本上是一条指令,告诉内核从用户模式切换到内核模式。示例:在系统

我读了答案,我想我有了一个清晰的想法。但那个答案又让我困惑了

有人能给我一个信号,异常,硬件中断和陷阱之间的区别清晰的图片吗

此外,我想知道内核代码的块CPU抢占中的哪一个


示例将非常有用。

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

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

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


信号:内核生成信号,并在出现异常时发送到进程。例如,除零指令将导致内核为进程生成SIGSEGV信号(SEGFULT)。

1。中断可以由硬件发出。2.异常不是同步的。3.所有的东西都可以捕获到内核。4.信号并不总是由内核生成(进程信号也会发生)。