参加操作系统课程。 因此,我知道TRAP和异常都可以视为软件中断...因此它们既是内部的又是同步的。 但是我似乎无法弄清楚这两个定义之间的区别。 因此,如果有人不介意解释和举一些例子,将不胜感激。
谢谢。
答案 0 :(得分:0)
陷阱由程序员使用x86中的Int指令启动。一旦遇到此指令,程序控制就会转移到特殊处理程序例程。 每当发生异常情况时,都会引发异常。例如,除零条件。程序控制权转移到用户定义的异常处理程序。
答案 1 :(得分:0)
存在中断-导致CPU从表(例如n中断向量表)开始执行代码的事物。
可以将中断分为几类,具体取决于触发它们的原因:
可以将异常进一步细分为以下子类别:
主要是;陷阱和例外之间的区别就像汽车与车辆之间的区别(陷阱是一种例外,汽车是一种类型的车辆;但是有些例外不是陷阱,而是有些车辆不是汽车。
因此,我了解TRAP和异常都可以视为软件中断
这可能是错误的(如果您使用的是Intel的术语,那肯定是错误的)-软件中断是一种中断,而不是一种异常。一个很好的例子是在80x86上int3
指令和int 3
指令之间的区别。 int3
触发一个断点异常(陷阱),而int 3
是一个软件中断(不是陷阱,也不是异常),可能会(取决于操作系统)导致一般的保护错误(由于违反了相应中断描述符表条目的“描述符特权级别”限制。