设中断级屏蔽位“1”对应于开放,“0”对应于屏蔽,各级中断处理程序的中断级 屏蔽位设置如下表所示: 中断处理 中断级屏蔽位 程序级别 第1级 第2级 第3级 第4级 第1级0000 第2级1011 第3级1000 第4级1010 (1)当中断响应优先次序为 1→2→3→4 时,其中断处理次序是什么? (2)设所有的中断处理都需要 3 个单位时间,中断响应和中断返回时间相对中断处理 时间少得多。当机器正在运行用户程序时,同时发生第 2、3 级中断请求,过两个单位时间后,又同时发生第 1、4 级中断请求,试画出程序运行过程示意图。
时间: 2024-02-17 11:05:09 浏览: 269
好的,我可以回答你的问题。
(1) 当中断响应优先次序为 1→2→3→4 时,中断处理次序如下:
- 中断1 → 中断2 → 中断3 → 中断4
(2) 根据题目所给的中断处理程序的中断级屏蔽位设置,可以得到各个中断的优先级从高到低依次为中断2、中断4、中断3、中断1。根据题目描述,发生第 2、3 级中断请求后,经过两个单位时间后又发生第 1、4 级中断请求,可以得到中断响应的次序为 2→3→1→4。因为中断响应和中断返回时间相对中断处理时间少得多,所以我们可以假设中断处理程序在处理中断的同时,可以同时响应其他中断请求。
下面是程序运行过程的示意图:
```
时间轴: 0 1 2 3 4 5 6 7
用户程序: | | | | | | | |
中断2: |* | | | | |
中断3: |* | | | |
中断1: |* | | |
中断4: | |* | |
```
其中,中断2在第2个单位时间发生,中断3在第4个单位时间发生,中断1在第6个单位时间发生,中断4在第6个单位时间发生。中间带有 `*` 的位置表示中断处理程序正在处理中断,其他位置表示用户程序正在执行。根据中断响应次序,中断2先被响应,并在第3个单位时间开始处理;中断3在第5个单位时间被响应,并在第6个单位时间开始处理;接着中断1在第7个单位时间被响应,并在第8个单位时间开始处理;最后中断4在第7个单位时间被响应,并在第8个单位时间开始处理。因为中断响应和中断返回时间相对中断处理时间少得多,所以中断处理程序可以在处理中断的同时响应其他中断请求,不会对用户程序的执行造成太大的影响。
阅读全文