中断、异常和陷阱的分类及区别

不管是内中断,外中断,软中断还是硬中断都是按照中断源来划分的。

一、外中断

狭义上的中断(interruption)指的就是外中断。
指来自CPU执行指令以外的事件的发生,希望处理机能够向设备发下一个输入/输出请求,同时让完成输入/输出后的程序继续运行。
简单来讲,就是外设请求或人为干预等当前执行指令之外的因素所引起的中断。

二、内中断

内中断也常称作异常(exception),指的是CPU执行当前指令时所发生的中断,一般分为两种:
1.自愿中断。比如当前执行的是trap指令。
2.强迫中断。即当前指令在执行时发生的错误所引起的中断,例如:地址越界,算术溢出,虚存系统的缺页等。

三、软中断

软中断字面理解一下就是由软件程序所引起的中断。
本质上来讲软件中断是可被调用执行的程序。例如:ROM BIOS中的各种外部设备管理中断服务程序(键盘管理中断、显示器管理中断、打印机管理 中断等,)以及DOS的系统功能调用(INT 21H)等都是软件中断。
软中断大部分都是人为主动引起的,不过一些外中断发生后也会自动的向系统再发出一个软中断。
例如当打印机端口产生一个硬件中断时,会通知和硬件相关的硬中断,硬中断就会产生一个软中断并送到操作系统内核里,这样内核就会根据这个软中断唤醒睡眠在打印机任务队列中的处理进程。

四、硬中断

硬件中断是由与系统相连的外设(比如网卡 硬盘 键盘等)自动产生的. 每个设备或设备集都有他自己的IRQ(中断请求)。

五.上述的总结

内中断中有一部分属于硬中断,即强迫中断中的硬件故障部分。
外中断中外设的请求也会触发软中断。
所以四者之间仅仅是分类不同,并没有等价或者包含关系。

六 .异常和陷阱

异常就是内中断。
而陷阱就是属于异常中的trap部分

七 特点总结

1、软中断发生的时间是由程序控制的,而硬中断发生的时间是随机的。相比于软中断,硬中断具有随机性与突发性
2、软中断是由程序调用发生的,而硬中断是由外设引发的
3、硬件中断处理程序要确保它能快速地完成它的任务,这样程序执行时才不会等待较长时间。故而一般情况硬中断都要快与软中断。
4.硬中断的中断号是由中断控制器提供的(NMI 硬中断中断号系统指定为 02H);软中断的中断号由指令直接给出,无需使用中断控制器。
5.硬中断是可以被屏蔽的(NMI除外),而软中断不可屏蔽
(异常中的硬件故障均属于不可屏蔽类型的硬中断)

物联沃分享整理
物联沃-IOTWORD物联网 » 中断、异常和陷阱的分类及区别

发表评论