中断:
a) 异步,随时会发生,cpu可能正在执行指令,也可能刚执行完一条指令;可能在用户态,也可能在内核态
b)处理外设的常用方法,NMI和可屏蔽中断,是外设硬件也cpu交互的一种方式,比如时钟中断,硬盘读写服务请求
异常:
a)同步,这个总是发生在一条指令执行结束时候
b)fault,如著名的pagefault,存储的是当前出错的指令,等从异常返回后,还要执行一遍出错的指令
trap,陷入,存储的是一下一条将要执行的指令,多用在调试中,如果gdb
软中断/可编程中断
目前使用的就0x80中断,也是自己主动从用户态陷入内核态,存储的是下一条将要执行的指令,只是程序主动发起的保存的是用户态的上下文