嵌入式笔试刷题(第10天)
1. 分时操作系统的主要目的是提高计算机系统的性能。( )
✅ 正确。
解释:分时操作系统通过快速切换多个任务,让每个任务都能“占用”CPU一段时间,从而提高系统的响应速度和CPU的利用率,最终提升整体性能。
2. 一个任务从运行状态变成就绪状态必定会引起任务的切换。( )
❌ 错误。
解释:任务从运行转为就绪只是说明该任务不再运行,但不一定引起任务切换(如没有高优先级任务)。只有调度器主动调度别的任务才会真正发生切换。
3. 块设备不能直接与I/O系统交互,I/O系统与块设备之间必须有文件系统。( )
❌ 错误。
解释:块设备如硬盘可以被I/O系统直接访问(如通过dd
命令),文件系统只是用于提供文件层次结构的抽象。
4. 一个任务可以从运行状态变成等待状态,也可以从等待状态变成运行状态。( )
❌ 错误。
解释:任务不能从等待状态直接进入运行状态,必须先变成就绪状态,再由调度器选中才能运行。
5. 按实时性来分,嵌入式系统可分为几类?它们的特点是什么?
答:
- 硬实时系统:对时间要求极高,必须在指定时间完成任务,如汽车刹车系统。
- 软实时系统:尽量满足时限,但偶尔延迟可以接受,如多媒体播放器。
- 非实时系统:对时间无严格要求,如文件拷贝。
6. 什么是死锁,什么是锁住?
- 死锁:多个任务互相等待彼此释放资源,导致系统停滞。
- 锁住:一个任务对资源加锁,不释放,其他任务被阻塞,但不是互相等待。
7. 软件测试的意义:
答:验证软件是否符合设计需求,发现潜在缺陷,提升可靠性、健壮性和用户满意度。
8. C 程序题:将一个数组 char A[n]
的每个字节的8bit数据高低调转,存到 B[n]
#include <stdio.h> unsigned char reverse_bits(unsigned char byte) { unsigned char rev = 0; for (int i = 0; i < 8; ++i) { rev <<= 1; rev |= (byte & 1); byte >>= 1; } return rev; } void reverse_array_bits(unsigned char A[], unsigned char B[], int n) { for (int i = 0; i < n; ++i) {
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。