按照不同的分类方法,可以有多种中断方式。

  1.外中断与内中断

  外中断是指处理机之外的事件引起的中断,如外部设备的输入输出服务、电源掉电、其他处理机的服务请求、机器重启动等。
  内中断是指由处理机内部的硬件或软件引起的中断,包括来自运算器、控制器、存储器、总线等部件的中断服务请求,也包括程序断点及单步执行等软件引起的中断请求。

  2.可屏蔽中断与不可屏蔽中断

  不可屏蔽中断通常用来处理那些特别紧急的事件,如电源掉电、硬件故障、主存校验错等。由于不可屏蔽中断要处理的事件都是非常紧急的事件,如果不及时处理将会造成严重后果,因此,不可屏蔽中断的优先级通常都很高,而且不允许通过软件来屏蔽中断服务请求。
  大部分中断均为可屏蔽中断,这类中断源的中断服务请求能够通过软件来屏蔽(具体屏蔽方法将在后面介绍)。

  3.强迫中断与自愿中断

  强迫中断出现在先行程序的什么地方是随机的,它不是由程序员事先安排的。当中断源请求中断服务并得到CPU的允许后,处理机暂停执行现行程序,转去执行相应的中断服务程序。中断服务程序执行完成之后,再返回到原先的的程序中继续执行。
  自愿中断又称为程序自中断、软件中断、或陷阱中断等。自愿中断是由程序员在程序中事先安排好的,它出现在程序的什么地方是确定的,从这一点上看,自愿中断与子程序调用是相同的,但是,两者所起的作用完全不同。自愿中断通过执行广义指令(或称为陷阱指令、软中断指令等),而不是子程序调用责令,进入操作系统中的管理程序,完成一些特殊的管理任务。

  4.单重中断与多重中断

  单重中断是指处理机一旦开始执行某一个中断源的中断服务程序,就将一直执行完成,直到它返回主程序之前不能被其他中断源的中断服务程序打断。
  如果处理机在执行某一个中断服务程序的过程中,允许被中断优先级更高的中断源打断,转去执行这个更高优先级的中断服务程序,等这个高优先级的中断服务程序执行完成之后再返回来继续执行原先的中断服务程序,这种中断方式称为多重中断,或称为中断嵌套。目前,在许多计算机系统中都允许多重中断,有的计算机系统允许有8级以上的多重中断。

  5.向量中断与非向量中断

  向量中断方式与非向量中断方式的主要区别是向量中断方式全部用硬件产生中断服务程序的入口地址,即中断向量。在中断向量中,除了有中断服务程序的入口地址之外,通常还包括该中断源的硬件现场,如处理机状态字、堆栈指针及中断屏蔽码等。
  通常用硬件排队器和编码器在所有请求中断服务的中断源中,产生具有最高优先级的中断源的中断向量,然后通过硬件直接进入这个中断源的中断服务程序中执行。
  非向量中断方式通常采用软件和硬件相结合的方法产生中断服务程序入口地址,具体方法将在本章第4节中作比较详细的介绍。