参加操作系统课程。因此,我了解陷阱和异常都可以视为软件中断……因此它们既内部又同步。但是,我似乎无法弄清两个定义之间的区别。因此,如果有人不介意解释并举例说明,这将是高度赞赏的。
谢谢。
有中断 - 导致CPU从表启动代码执行代码的事物(ae.g。n Interrupt向量表(。
中断可以根据触发的内容分为类别:
- 例外 - 由CPU本身触发
- IRQS-由外部硬件触发(例如网络卡(
- 软件中断 - 由运行的代码明确触发
- IPI(处理间中断( - 由其他CPU触发 触发
例外可以进一步分为子类别:
- 中止 - 防止中断代码继续进行的事情。这些是指一个主要问题的事情 - 例如零,硬件故障等
- 陷阱 - 无法阻止中断代码继续进行的事情。这些可用于调试,虚拟内存管理等。
主要是;陷阱和例外之间的差异就像是汽车和车辆之间的差异(陷阱是一种例外,汽车是一种类型的车;但是有一个例外不是陷阱,有些车辆有些车辆不是汽车(。
所以我已经理解陷阱和例外都可以视为软件中断
这可能是错误的(如果您使用英特尔的术语,绝对是错误的( - 软件中断是一种中断,而不是一种例外。一个很好的例子是int3
指令与80x86上的int 3
指令之间的区别。int3
触发断点异常(陷阱(,而int 3
是软件中断(不是陷阱,而不是异常(,可能会导致一般保护故障(由于违反了"描述符级别"("对相应的中断描述符表的限制(。
陷阱由程序员使用x86中的指令INT启动。一旦遇到此说明,程序控件就会转移到特殊处理程序例程中。每当发生异常情况时,会增加例外。例如,划分为零。程序控件转移到用户定义的异常处理程序中。