中断和异常

异常

当cpu在执行运行在用户态下的程序时,发生了一些没有预知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关进程中,也就是切换到了内核态,如缺页异常。

外围设备的中断

当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令而转到与中断信号对应的处理程序去执行,如果前面执行的指令时用户态下的程序,那么转换的过程自然就会是 由用户态到内核态的切换。如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后边的操作等。

中断和异常的区别

中断分为外中断和内中断。

外中断——就是我们指的中断——是指由于外部设备事件所引起的中断,如通常的磁盘中断、打印机中断等;
内中断——就是异常——是指由于 CPU 内部事件所引起的中断,如程序出错(非法指令、地址越界)。内中断(trap)也被译为“捕获”或“陷入”。
异常是由于执行了现行指令所引起的。由于系统调用引起的中断属于异常。
中断则是由于系统中某事件引起的,该事件与现行指令无关。

相同点:都是CPU系统发生的某个事情做出的一种反应

 区别:中断外因引起异常CPU本身原因引起。

中断的引入——为了支持CPU和设备之间的并行操作

异常的引入——表示CPU执行指令时本身出现的问题

中断(外中断)的常见事件有:I/O中断,时钟中断,硬件故障

异常(内中断)的常见事件有:系统调用,页故障、页错误,保护性异常,断点指令,其他算数型异常(算数溢出等)

类别原因同步/异步返回行为

中断(外中断)

interrupt

来自I/O部件或其他硬件设别异步总是返回到下一条指令
陷入trap有意识安排的错误同步返回到下一条指令
故障fault可恢复的错误同步

返回到当前指令

终止abort不可恢复的错误同步不会返回

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值