周期任务执行时间超过周期时,应该补跑、跳过还是降级?
没有统一答案:控制环可能必须报告 Deadline miss 并进入安全策略,界面刷新可跳过旧帧,批处理可有界补跑。系统要检测超期、限制积压,并明确下一次释放时间,而不是让延迟无限累积。
Question Bank
按知识、方向与难度筛选;每道题都有分层回答和工程追问。
没有统一答案:控制环可能必须报告 Deadline miss 并进入安全策略,界面刷新可跳过旧帧,批处理可有界补跑。系统要检测超期、限制积压,并明确下一次释放时间,而不是让延迟无限累积。
外部强删任务无法自动理解它持有的互斥锁、DMA、堆对象或外设事务,容易留下永久占用。优先使用协作式停止:发取消请求、退出新工作、取消或等待在途操作、释放资源、回报完成,再由所有者回收。
递归互斥锁允许同一任务重复获取,并要求对应次数释放,适合不可避免的同线程嵌套调用。它不允许其他任务越权释放,也不能解决锁顺序环路;滥用会隐藏层次不清和过大的临界区。
硬中断、软中断以及持自旋锁或禁止抢占的路径不能调用可能调度睡眠的 API,因为当前上下文不能安全切走。进程上下文不等于一定可睡眠,还要检查当前持锁和中断状态。
原子读改写只保证目标操作不可撕裂,其内存排序强度取决于具体 API;relaxed、acquire、release 和全屏障版本语义不同。发布对象状态时必须按内核内存模型选正确原语,不能靠 volatile。
regmap 抽象寄存器地址和值宽、字节序、总线访问、缓存、更新位和调试能力,使驱动逻辑与 I²C/SPI 细节分离。易变、只读、写一清零和有副作用寄存器必须正确描述,不能盲目缓存。
DMA mask 告诉内核设备能访问多少位地址,映射层据此选择可达内存或建立转换。设备看到的 DMA 地址可能经过 IOMMU、总线窗口或 bounce buffer,并不保证等于 CPU 物理地址,驱动只能使用 DMA API 返回值。
kfifo 适合有界 FIFO;单生产者单消费者在规定条件下可无额外锁,多生产者或多消费者需要同步。字节流不天然保存消息边界,可使用 record 形式或自定义长度头,并在取出前验证完整记录。