0

我对两者的理解都不太清楚。网上很多人都说两者是一样的。有几个问题与我的问题类似,但是它们都没有在软件级别给出一个很好的现实生活示例。

有人可以给我一个明确的例子,这将帮助我理解彼此之间的差异吗?

例如,除以零是软件中断吗?还是一个例外?

4

1 回答 1

0

中断和异常具有相同的调度方法(通常通过系统中断向量)。但是,中断和异常的触发方式不同。

执行指令流时发生异常。因此,异常发生在应用程序中的可预测点。

中断是执行流外部事件的结果。

被零除是指令流使其异常的结果。

一些操作系统是基于中断的(例如,Windoze 和 VMS)。它们允许应用程序在用户(或其他模式)下因各种原因被中断。

例如。在这两个操作系统中,您都可以对 I/O 操作进行排队,然后在 I/O 完成时中断应用程序(由操作系统而不是硬件触发的软件中断)。

于 2016-11-07T03:11:17.310 回答