# 中断与实时性保障参考 ## 1. 与本项目的关系 本方向为论文的“可保障性”提供理论和系统基础,覆盖固定优先级响应时间、共享资源阻塞、优先级倒置、中断线程化、CPU/IRQ 亲和性以及外部闭环测量。 ## 2. 经典理论资料 | 资料 | 等级 | 可支撑内容 | 本项目使用方式 | |---|---|---|---| | C. L. Liu, J. W. Layland, “Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment,” 1973. [DOI](https://doi.org/10.1145/321738.321743) | A | RMS/EDF 与周期任务基础 | 建立基本任务模型 | | L. Sha, R. Rajkumar, J. P. Lehoczky, “Priority Inheritance Protocols: An Approach to Real-Time Synchronization,” IEEE TC, 1990. [DOI](https://doi.org/10.1109/12.57058) | A | 优先级继承、优先级上限与有界阻塞 | 支撑锁竞争和优先级倒置分析 | | N. Audsley et al., “Applying New Scheduling Theory to Static Priority Pre-emptive Scheduling,” 1993. [DOI](https://doi.org/10.1049/sej.1993.0034) | A | 含阻塞和抖动的精确固定优先级分析 | 构建含 IRQ/驱动阻塞的 RTA | | K. Tindell, A. Burns, A. Wellings, “An Extendible Approach for Analyzing Fixed Priority Hard Real-Time Tasks,” Real-Time Systems, 1994. [DOI](https://doi.org/10.1007/BF01088593) | A | 固定优先级分析扩展 | 用于更复杂任务和通信分析 | ## 3. 内核与测量资料 | 资料 | 等级 | 可支撑内容 | |---|---|---| | Linux Kernel, “PREEMPT_RT Theory of Operation.” [官方文档](https://docs.kernel.org/core-api/real-time/theory.html) | A | 可抢占锁、rtmutex、优先级继承和线程化中断 | | Linux Kernel, “How realtime kernels differ.” [官方文档](https://docs.kernel.org/core-api/real-time/differences.html) | A | 普通 Linux 与 PREEMPT_RT 的内核语义差异 | | Linux Foundation Real-Time Linux, “Cyclictest.” [官方文档](https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/start) | A/B | 唤醒延迟工具、参数、限制和最大值解释 | | Linux `rt-tests` 项目. [kernel.org](https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/) | B | cyclictest、hwlatdetect 等实现与版本记录 | ## 4. 本项目分析框架 关键任务响应时间可写为: ```text R_i = C_i + B_i + I_irq,i + I_sched,i + sum(ceil((R_i + J_h) / T_h) * C_h) ``` 其中 `C_i` 是自身执行时间,`B_i` 是共享资源阻塞,`I_irq,i` 是中断与驱动干扰,`I_sched,i` 是调度器和不可抢占区间干扰,求和项是高优先级任务干扰。该式只用于组织分析;每个项的取值和适用假设必须单独验证。 实测至少覆盖: - 计划释放、就绪、开始和完成时间; - 唤醒延迟、响应时间、完成抖动、违约率和观测最大值; - IRQ 数量、处理时间、CPU 亲和性和最长关中断区间; - 推理提交、DMA 和完成中断与关键任务峰值的时间关联; - GPIO/CAN/RS485/网络外部回路端到端时延。 ## 5. 对照与消融 - O0 普通 Linux、O1 PREEMPT_RT、O2 SylixOS 默认、O3 SylixOS 优化、必要时 O4 等预算调优; - 逐项去除 CPU 隔离、IRQ 亲和性、优先级继承、内存预分配和推理准入; - 同时报人工智能有效吞吐代价,避免通过饿死推理任务获得低抖动。 ## 6. 不应直接推出的结论 - cyclictest 测得的是特定路径的唤醒延迟,通常不等于业务任务完整响应时间。 - 实测最大值不是 WCET;零违约不是硬实时证明。 - PREEMPT_RT 和专用 RTOS 的机制差异必须通过等价任务语义比较,不能只比较工具默认输出。