有中断 - 会导致CPU开始执行来自表格的代码(例如中断向量表)。根据触发它们的原因,中断可以分为以下几类:- 异常 - 被CPU本身触发 - IRQs - 被外部硬件触发(例如网络卡) - 软件中断 - 显式地被运行的代码触发 - IPIs(处理器间中断) - 被不同的CPU触发异常可以进一步分为子类别:- 中止 - 阻止中断的代码继续执行。这些是指示重大问题的事情 - 例如除以零、硬件故障等。 - 陷阱 - 不会阻止中断的代码继续执行。这些可以用于调试、虚拟内存管理等。总的来说,陷阱和异常之间的区别就像汽车和车辆之间的区别一样(陷阱是异常的一种类型,汽车是车辆的一种类型;但有些异常不是陷阱,有些车辆不是汽车)。“所以我理解陷阱和异常都可以被视为软件中断”可能是错误的(如果使用英特尔的术语,则肯定是错误的) - 软件中断是一种中断类型,而不是异常类型。一个很好的例子是80x86上int3指令和int 3指令之间的区别。int3触发断点异常(陷阱),而int 3是一种软件中断(不是陷阱也不是异常),这可能会导致通用保护错误(由于违反了相应中断描述符表条目上的“描述符特权级别”限制,具体取决于操作系统)。