当处理机执行主程序时,处理机的优先级最低,为0级。4个中断源同时请求中断服务,通过硬件排队器选择其中硬件中断优先级最高的中断源D4,处理机首先响应它的中断服务请求,并且把处理机的优先级改变为1级。这时,由于D1、D2、D3三个中断源仍然在请求中断服务,而且,它们的硬件中断优先级都比当前处理机的优先级高,因此,处理机要响应其中硬件中断优先级最高的中断源D3的中断请求,并且把处理机的优先级改变为2级。这时,还剩下D1和D2两个中断源在请求中断服务,它们的硬件中断优先级都不高于当前处理机的优先级,因此,中断源D3的中断服务程序能够一直执行完成。
  当处理机从中断源D3的中断服务程序返回到中断源D4的中断服务程序中时,处理机的中断优先级又变成了1级。这时,还没有得到处理机响应的两个中断源D1和D2中,只有中断源D2的硬件中断优先级高于当前处理机的中断优先级。因此,处理机将立即响应中断源D2的中断服务请求,又把处理机的优先级改变为3级。由于剩下的中断源D1的硬件中断优先级低于当前处理机的优先级,处理机将把中断源D2的中断服务程序全部执行完毕后才会返回到中断源D4的中断服务程序中。这时,最后一个没有被处理机响应的中断源D1的硬件中断优先级与当前处理机的优先级相同,要等待处理机把中断源D4的中断服务程序全部执行完成,并返回到主程序之后,中断源D1的的中断服务请求才能得到处理机的响应。
由于中断源D1是最后一个被处理机响应并得到服务的中断源,这时,没有其他中断源申请中断服务,因此,它的中断服务程序能够一直执行完成。在中断源D1的中断服务程序全部执行完成,处理机返回来执行主程序时,全部中断源的中断服务请求也就处理完成了。
  从图7.10中看到,虽然4个中断源D1、D2、D3、D4的硬件中断优先级是从低到高顺序排列的,并且4个中断源同时请求中断服务,但是,通过改变各个中断源所属的处理机状态字内的中断优先级,就能够使处理机实际完成中断服务的顺序改变成了D3、D2、D4、D1。当然,还可以根据需要,任意改变中断服务的顺序。
  优先级屏蔽法与独立屏蔽法相比,两者都能够由程序员通过软件来改变中断源的中断服务顺序,因此,它们都具有灵活性好的特点。但是,两者所采用的屏蔽方法是不同的,从上面所举的两个例子中就可以看到它们之间的主要差别,现归纳如下:
  1.两者使用的概念不同。独立屏蔽法使用的是中断屏蔽概念,而优先级屏蔽法使用的是中断优先级的概念。
  2.独立屏蔽法要为每一个中断源设置一个中断屏蔽位,所需要的位数比较多,而优先级屏蔽法表示中断优先级所使用的位数要少得多。两者所需要的中断屏蔽码的长度为(n: )。
  3.独立屏蔽法使用起来要比优先级屏蔽法方便些。例如,独立屏蔽法可以任意屏蔽掉一个或几个中断源,而优先级屏蔽法只能屏蔽掉比某一个中断优先级低的中断源。