单选题
1、下列说法错误的是( )
A
同一级别的中断请求按时间的先后顺序响应
B
同一时间同一级别的多中断请求,将形成阻塞,系统无法响应
C
低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求
D
同级中断不能嵌套
答案解析
正确答案:B
解析:
这道题考查的是计算机操作系统或微机原理中关于**中断处理机制**的基本概念,特别是中断优先级、中断嵌套以及中断响应的顺序。
以下是对各个选项的详细解析:
**1. 选项分析**
* **A. 同一级别的中断请求按时间的先后顺序响应(正确)**
* 当多个中断源具有相同的优先级时,CPU 无法通过优先级仲裁来决定响应顺序。此时,硬件通常会采用“查询法”或固定的内部优先级链(如菊花链电路),但在逻辑上,如果没有任何额外的优先级设定,通常遵循**先来先服务**的原则,或者由硬件决定的固定顺序响应。在大多数通用描述中,认为它们按请求到达的先后顺序或被查询到的顺序进行响应是合理的描述,并非错误说法。
* **B. 同一时间同一级别的多中断请求,将形成阻塞,系统无法响应(错误)**
* 这是本题的错误选项。
* **理由**:即使多个同级中断同时发生,系统也**不会**因此阻塞或无法响应。CPU 会根据硬件设计的固定优先级(如中断向量表的顺序、菊花链的物理位置等)或者软件查询的顺序,选择**其中一个**中断进行响应和处理。
* 其余未获得响应的同级中断请求会被挂起(Pending),等待当前中断服务程序执行完毕并开中断后,再依次得到响应。系统依然能够正常工作,只是响应会有延迟,绝不会导致“系统无法响应”的死锁或阻塞状态。
* **C. 低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求(正确)**
* 这是**中断嵌套**的核心规则。
* 为了保证重要紧急的任务能被及时处理,高优先级中断可以打断正在执行的低优先级中断服务程序(即抢占)。
* 反之,为了保护高优先级任务的完整性,低优先级中断不能打断高优先级中断。
* **D. 同级中断不能嵌套(正确)**
* 在典型的中断控制系统中,为了防止无限递归或逻辑混乱,通常规定**同级中断之间不允许嵌套**。
* 也就是说,当 CPU 正在处理某个级别的中断时,如果又来了一个同级别的中断请求,CPU 会将其挂起,直到当前中断服务程序执行完毕并返回主程序(或更低优先级的上下文)后,才会去响应那个新的同级中断。
**2. 结论**
选项 B 声称系统会因同级多中断而“无法响应”,这严重违背了中断系统的设计原则。中断系统的目的就是为了保证系统能异步处理外部事件,任何合理的中断控制器都能处理并发请求(通过排队或仲裁),而不会导致系统瘫痪。
因此,错误的说法是 **B**。
相关知识点:
同级中断按序响应不阻塞
题目纠错
单片机
相关题目
单选题
1、绝对地址包含头文件absacc.h定义了几个宏,用来确定各类存储空间的绝对。 ( )
填空
单选题
5、全家变量可使用static关键字进行定义,由于全局变量一直存在,占用了大量的内存单元,且加大了程序的耦合性,不利于程序的移植或复用。
( )
单选题
4、全家变量是在某一函数中存在的变量,它只在该函数内部有效。 ( )
单选题
3、在C51语言编程中,编写中断服务函数时需要考虑如何进行现场保护、阻断其他中断、返回时自动恢复现场等处理的程序段的编写。 ( )
单选题
2、在C51语言中,函数是一个完成一定相关功能的执行代码段,它与另外两个名词“子程序”和“过程”用来描述同样的事情。 ( )
单选题
1、C51语言处理单片机的中断是由专门的中断函数来处理的。 ( )
单选题
6、C51用“*”和“&”运算符来提取指针变量的( )和指针变量的( )。
判断
单选题
5、对于SMALL存储模式,所有变量都默认位于8051单片机( )。
单选题
4、C51提供了存储类型来访问( )。
单选题
3、C51提供了两种不同的数据存储类型( )和( )来访问片外数据存储区。
