优先级与阻塞
就绪态任务由调度器选择执行;延时、等待队列或信号量的任务处于阻塞态,不应持续轮询占用 CPU。
High
Control
Control
Ready
Queue
Queue
- 用任务周期和截止期解释优先级。
- 区分抢占调度与时间片轮转。
Module 02 / system coordination
FreeRTOS 处理资源受限 MCU 上的任务协作;Linux 通过用户态、系统调用和驱动管理更完整的系统资源。面试重点是明确两者的边界与取舍。
先解释调度器选择谁运行,再讨论任务优先级、周期与实时性;不要将“高优先级”误解为永远占用 CPU。
就绪态任务由调度器选择执行;延时、等待队列或信号量的任务处于阻塞态,不应持续轮询占用 CPU。
低优先级任务持有锁时,高优先级任务会阻塞;中优先级任务若持续运行,会放大高优先级任务的等待。
控制任务关注实际唤醒时间、执行时间和最坏情况延迟。日志输出或复杂计算应避免阻塞关键闭环。
回答时先说明“传数据”还是“通知事件”,再选择队列、信号量、事件组或通知机制。
Linux 用户态程序不是直接操作硬件,而是通过库、系统调用、设备文件或专用框架进入内核驱动。
应用负责业务、数据处理和错误处理;调用 open/read/write/ioctl 或系统库接口请求内核提供服务。
驱动对接 I²C、SPI、UART、GPIO 或网络控制器,并向用户态暴露设备节点、sysfs 或专用 API。
从应用参数、系统调用、驱动日志到电气波形逐层缩小范围,避免一开始把问题归因于“驱动坏了”。
Interview drills
队列主要传数据;信号量侧重同步或资源计数;事件组表达多个独立标志位。回答要补充任务/ISR 使用限制和超时处理。
依次确认设备枚举、节点与权限、应用参数和返回值、内核日志、驱动状态,最后再检查硬件连接与总线波形。