设某机有5级中断:L0、L1、L2、L3、L4,其中断响应优先次序为:L0最高、L1次之、……、L4最低。现在要求将中断处理次序改为L1→L3→L0→L4→L2,试问: (1)各级中断服务程序中的各中断屏蔽码应如何设置(设每级对应一位,当该位为“0” ,表示中断允许;当该位为“1” ,表示中断屏蔽)? (2)若这5级同时都发出中断请求,试画出进入各级中断处理过程示意图。
时间: 2023-07-10 20:17:26 浏览: 678
中断事件处理
(1) 为了满足新的中断处理次序,各级中断服务程序中的中断屏蔽码应该设置为:
L0:01110
L1:10001
L2:00001
L3:00100
L4:11000
其中,L0的中断屏蔽码为01110,表示屏蔽L1、L2、L3、L4级中断;L1的中断屏蔽码为10001,表示屏蔽L0、L2、L3、L4级中断;L2的中断屏蔽码为00001,表示只屏蔽L4级中断;L3的中断屏蔽码为00100,表示只屏蔽L2级中断;L4的中断屏蔽码为11000,表示屏蔽L0、L1、L3级中断。
(2) 若这5级同时都发出中断请求,按照新的中断处理次序,应该是L1先响应,然后是L3、L0、L4、L2。进入各级中断处理过程的示意图如下:
```
+---------------+
| L1 |
+---------------+
|
v
+---------------+
| L3 |
+---------------+
|
v
+---------------+
| L0 |
+---------------+
|
v
+---------------+
| L4 |
+---------------+
|
v
+---------------+
| L2 |
+---------------+
```
其中,箭头表示中断请求的响应顺序。由于L0的中断屏蔽码中屏蔽了L1、L2、L3和L4级中断,因此L1会先响应。当L1处理完后,L3会被响应,然后是L0、L4和L2。
阅读全文