星空网 > 软件开发 > 操作系统

中断与异常详解(一)

Intel x86共有256种异常或者中断,也就是常说的中断向量,分别有对应的中断类型码,分布如下

0-31

异常和非屏蔽中断

32-47

由I/O设备引起的屏蔽中断,书中所讲为8259A单片机来处理响应34号中断外的其他中断

48-255

标识软中断,linux系统只使用了128号即0x80来实现系统内调用,在用户态下执行int 0x80汇编,cpu切换到内核态,执行system_call()函数


 

对于cpu跑指令的过程中遇到的突**况分为两大类

CPU内部

cpu内部出现的问题,必须马上处理,所以叫异常;

CPU外部

cpu外部出现问题,可以不马上处理,所以采用可屏蔽和不可屏蔽中断的方式来区分。

 

 

为了管理方便,异常和不可屏蔽中断都当作异常来处理,这类问题有专门的异常处理程序,是linux要解决的问题。

0-17号是intel定义异常,除了3,4,5(以及后面的128)号是陷进外(留给系统调用),其他的都是故障,cpu跑不下去了,所以需要处理

中断与异常详解(一)images/loading.gif' data-original="http://images2015.cnblogs.com/blog/815801/201510/815801-20151022204541786-818147245.png" width="957" height="893" />

18-31号为将来的cpu保留

32-47由8259A响应,对应下面的IRQ0-IRQ15,34号中断也就是IRQ2不知道做什么

中断与异常详解(一)

还有个128号软中断系统调用




原标题:中断与异常详解(一)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流