在现代计算机系统中,中断优先级一般是由硬件的排队器实现的,因此,当有多个中断源同时请求中断服务时,中断响应次序的高低是固定死的。优先级高的中断源先被处理机响应。处理机在执行某一个级别的中断源的中断服务程序时,与它同级的或比它低级的中断源的中断请求不能中断它的服务程序,只有比它高级的中断源的中断请求才能中断其服务程序。这时,处理机响应这个高级的中断源的中断请求,转去为它服务,待服务完成后,在返回来继续执行原先的那个中断服务程序。
  下面举一个例子来说明不同优先级的中断源随机请求中断服务时,它们的中断响应和中断服务的过程。
  假设某处理机共有4个中断源,中断优先级从高到低分别是:1级、2级、3级和4级。当处理机在执行主程序时,同时有3级中断源和2级中断源向处理机发出中断服务的请求。在处理机执行2级中断源的中断服务程序时,又有4级中断源发出中断服务请求,在处理机执行4级中断源的中断服务程序时,又有1级中断源发出中断服务请求。主程序与4个中断服务子程序之间的切换过程如图7.2所示。

图 7.2 按照中断优先级响应中断请求的例子

  因为2级中断源的中断优先级高于3级中断源,因此它首先得到处理机的响应,并进入其中断服务程序。这时,虽然又有4级中断源发出中断服务请求,但是,由于在等待中断服务的3级中断源和4级中断源的中断优先级都低于处理机正在为它服务的2级中断源,因此,它们都不能中断2级中断源的中断服务程序。2级中断源的中断服务一直能够处理完成。
  当2级中断源的中断服务过程全部执行完成,处理机返回来执行主程序。这时,处理机再次在等待中断服务的3级和4级两个中断源中选择一个中断优先级高的3级中断源。处理机响应3级中断源的中断请求,并为它服务。待3级中断源的中断服务完成,处理机又返回执行主程序时,才能响应4级中断源的中断请求,并为它服务。
  处理机在执行4级中断源的中断服务程序的过程中,1级中断源发出中断请求。由于1级中断源的优先级高于4级中断源,因此,它可以中断4级中断源的中断服务程序。处理机直接从4级中断源的服务程序中转移去执行1级中断源的中断服务程序。待1级中断源的中断服务程序全部执行完成后再返回到4级中断源的中断服务程序中继续执行。直到4级中断源的中断服务程序全部完成并返回到主程序,整个中断响应和中断服务过程就全部结束。