中断和异常
2016-07-01 09:21
169 查看
def:由CPU外部引发的使CPU停下当前的任务,转而去执行其他任务的情况称为中断。中断常由外部的硬件引发,由中断控制器控制。
def:由CPU内部的状态或执行的指令导致CPU停下当前任务,转而去执行其他任务的情况称为异常。异常产生于CPU内部,且分为以下三种:
1.错误:通常是指令的操作数的错误,CPU在执行完异常处理的代码后,再回到产生错误的这条指令(既这条指令会被压栈),在执行一次若还是错误则继续开始另一次的异常处理。如缺页异常
2.陷阱:通常是一些特殊指令,CPU在执行完异常处理的代码后,回到这条指令的下一条指令(既这条指令的下一条指令被压栈),从下一条指令开始继续执行。如断点指令
3.中止:通常是一些严重错误,CPU中止程序的执行并报告错误,而且不再恢复执行(指令无需压栈,通常可以看到当前的栈快照)。如越界访问或溢出
CPU对中断和异常采用了相同的处理过程:
在同时处理多个中断或异常时按照优先级的高低老决定处理的顺序:
def:由CPU内部的状态或执行的指令导致CPU停下当前任务,转而去执行其他任务的情况称为异常。异常产生于CPU内部,且分为以下三种:
1.错误:通常是指令的操作数的错误,CPU在执行完异常处理的代码后,再回到产生错误的这条指令(既这条指令会被压栈),在执行一次若还是错误则继续开始另一次的异常处理。如缺页异常
2.陷阱:通常是一些特殊指令,CPU在执行完异常处理的代码后,回到这条指令的下一条指令(既这条指令的下一条指令被压栈),从下一条指令开始继续执行。如断点指令
3.中止:通常是一些严重错误,CPU中止程序的执行并报告错误,而且不再恢复执行(指令无需压栈,通常可以看到当前的栈快照)。如越界访问或溢出
CPU对中断和异常采用了相同的处理过程:
在同时处理多个中断或异常时按照优先级的高低老决定处理的顺序:
相关文章推荐
- Eclipse的team下的 SVN update to HEAD 和 Synchronize with repository 的区别
- 在iOS开发中使用iconfont图标
- MAC 升级node.js的快捷方法
- STS-创建spring配置文件
- 数据结构课程设计(运动会成绩管理系统)
- C++ 类型转换运算符
- windows下dbca删掉字符集错误的库重新安装正确的字符集失败
- String StringBuilder StringBuffer 对比 总结得非常好
- 使用lint工具清理无效资源
- 【51CTO学院三周年】51CTO大数据学习心得
- 现在都用今日面试网站找工作了!
- 电路知识
- Java中中关于Calendar类的几点注意事项
- 大话设计模式--第22章 手机软件何时统一--桥接模式
- Android开发笔记(一百零九)利用网盘实现云存储
- C#获取本机局域网IP和公网IP
- iOS-在画布上写文字
- 绘制像素到屏幕上
- JQuery之添加与删除元素
- Android---程序锁(2)业务逻辑