中断与异常

来源:互联网 发布:手机棋牌游戏平台知乎 编辑:程序博客网 时间:2024/05/17 23:38

中断:
由一个外部硬件产生,告知CPU,异步事件
异常:
由程序执行过程中引发,与当前处理器正在执行的任务有关,同步事件
中断与异常是由统一管理(IDT - > 中断描述符表)
系统为每一个中断或者异常都提供一个处理函数(陷阱处理器)
当中断或者异常发生,指令的执行就会转到特性的陷阱处理器中,
由该陷阱处理器完成中断或者异常的处理工作.
这些陷阱处理器被放到一张表中(数组 - > IDT),异常或中断发生时,
cpu根据异常或中断的类型,转到表中某项去执行.
异常的分类:
错误 :
错误类异常通常都是可以被纠正的,产生错误异常,会保存当前线程
环境(寄存器状态等),然后从IDT中找到处理该错误的陷阱处理器,处理
完后,恢复线程环境,回到产生错误处继续执行
(纠正错误后在次执行产生异常的指令)
::线程环境中保留的EIP是产生异常的指令地址,而不是下一条指令
陷阱:
陷阱类异常产生时,错误指令已经被执行完毕,线程环境中保存的是
产生异常的指令的下一条指令,也可以恢复执行
终止:
终止类异常都极为严重的错误,程序一般已经无法继续运行了,只能
结束当前程序
(程序一开始就错了,但是执行一段时间之后才显现出来)

原创粉丝点击