嵌入式100题(76):中断和异常的区别

79 篇文章 49 订阅 ¥9.90 ¥99.00
本文探讨了中断和异常的区别,异常是CPU内部的同步中断,由编程错误或内核处理的条件引起,如除数为0或缺页。异常用于向进程发送信号或管理硬件资源。中断则是异步的,由外部硬件设备触发,分为可屏蔽和非屏蔽中断。中断有自己的中断上下文,而异常使用当前进程的上下文。在处理过程中,中断和异常都会利用堆栈保存信息以响应后续的请求。
摘要由CSDN通过智能技术生成

中断和异常的区别

1、异常:

  是指CPU内部出现的中断,即在CPU执行特定指令时出现的非法情况。同时异常也称为同步中断,因此只有在一条指令执行后才会发出中断,不可能在指令执行期间发生异常。

  产生的原因:

  •     程序的错误产生的,编程异常通常叫做软中断(eg:除数为0)
  •     内核必须处理的异常条件产生的(eg:缺页)

  产生的目的:

     Linux利用异常来达到两个截然不同的目的:

  •     给进程发送一个信号以通报一个反常情况
  •     管理硬件资源

    对于第一种情况,例如,如果进程执行了一个被0除的操作,CPU则会产生一个“除法错误”异常,并由相应的异常处理程序向当前进程发送一个SIGFPE信号。当前进程接收到这个信号后,就要采取若干必要的步骤,或者从错误中恢复,或者终止执行(如果这个信号没有相应的信号处理程序)。 

    对于第二种情况,内核使用两种异常来有效地管理硬件资源,相应的处理程序也就更复杂。在这种情况下,异常并不表示一种错误情况:

  •     用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

角色人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值