01
死锁的数学定义与图论模型
资源分配图、等待图、死锁的四个必要条件(互斥、持有并等待、非剥夺、循环等待)
图论必要条件
02
优先级反转问题
什么是优先级反转、经典案例(单资源场景)、优先级反转的危害(任务错过截止时间)
反转实时性
03
优先级继承协议
协议原理、实现机制、代码示例(FreeRTOS优先级继承)、优缺点分析
继承FreeRTOS
04
优先级天花板协议
协议原理、与优先级继承的区别、代码示例(VxWorks优先级天花板)、适用场景
天花板VxWorks
05
死锁预防策略
破坏互斥条件、破坏持有并等待条件(资源一次性分配)、破坏非剥夺条件、破坏循环等待条件(资源有序分配法)
预防资源分配
06
死锁避免策略
银行家算法原理、安全状态与不安全状态、银行家算法在RTOS中的局限性、资源轨迹图
银行家避免
07
死锁检测与恢复
检测算法(等待图检测)、恢复策略(任务终止、资源抢占)、死锁检测在RTOS中的实现(周期检测 vs 事件触发)
检测恢复
08
经典死锁案例
哲学家就餐问题(RTOS版本)、生产者-消费者死锁、嵌套锁死锁、多资源死锁
哲学家生产者-消费者
09
RTOS中的锁机制
互斥锁(Mutex)、递归锁、读写锁、自旋锁、在FreeRTOS/uCOS中的实现对比
Mutex自旋锁
10
任务优先级设计原则
固定优先级调度(RMS/DMS)、优先级映射策略、优先级反转避免的优先级设计
RMS优先级映射
11
死锁分析与解决工具
Tracealyzer、SystemView、Percepio、静态分析工具(Thread Analyzer)、动态分析工具
TracealyzerSystemView
12
FreeRTOS死锁案例分析
FreeRTOS配置与死锁、xSemaphoreTake死锁、守护任务死锁、优先级继承在FreeRTOS中的实现
FreeRTOSxSemaphore
13
uCOS-III死锁案例分析
uCOS-III死锁场景、OSMutexPend死锁、优先级天花板在uCOS-III中的实现、uCOS-III死锁检测机制
uCOS-IIIOSMutexPend
14
RT-Thread死锁案例分析
RT-Thread死锁场景、rt_mutex_take死锁、信号量与互斥量混用死锁、RT-Thread死锁检测组件
RT-Threadrt_mutex
15
Zephyr死锁案例分析
Zephyr死锁场景、k_mutex_lock死锁、Zephyr死锁检测与调试、Zephyr条件变量死锁
Zephyrk_mutex
16
VxWorks死锁案例分析
VxWorks死锁场景、semTake死锁、VxWorks优先级天花板实现、VxWorks WindView死锁分析
VxWorkssemTake
17
多核RTOS死锁问题
多核死锁特点、自旋锁死锁、缓存一致性导致的死锁、多核死锁检测与解决
多核缓存一致性
18
中断上下文中的死锁
中断与任务死锁、中断与中断死锁、中断中获取锁的规则、延迟中断处理(下半部)避免死锁
中断下半部
19
定时器与死锁
软件定时器死锁、定时器回调函数死锁、定时器与任务同步死锁、硬件定时器死锁
定时器回调
20
内存管理中的死锁
动态内存分配死锁、内存池死锁、伙伴系统死锁、内存碎片导致的死锁
内存池伙伴系统
21
I/O设备驱动中的死锁
设备驱动死锁、DMA死锁、中断驱动I/O死锁、轮询驱动I/O死锁
DMA驱动
22
网络协议栈中的死锁
TCP/IP协议栈死锁、socket死锁、网络缓冲区死锁、协议栈任务死锁
TCP/IPsocket
23
文件系统死锁
FAT文件系统死锁、Flash文件系统死锁、日志文件系统死锁、文件系统缓存死锁
FATFlash
24
死锁的测试与验证
死锁测试方法(压力测试、边界测试)、死锁复现技术、死锁注入测试、自动化死锁测试框架
压力测试注入
25
死锁的调试技术
死锁调试工具(GDB、JTAG)、死锁日志分析、死锁堆栈分析、死锁复现与定位
GDBJTAG
26
死锁的静态分析
静态代码分析工具(Coverity、Polyspace)、死锁模式匹配、抽象解释、模型检查
CoverityPolyspace
27
死锁的形式化验证
时序逻辑(CTL/LTL)、模型检查(Spin/NuSMV)、死锁形式化建模、死锁证明
CTLSpin
28
死锁的运行时验证
运行时监控、事件序列监控、死锁检测器设计、运行时验证开销分析
运行时监控
29
死锁的容错设计
死锁恢复机制、看门狗与死锁、健康监控、死锁容错架构
看门狗容错
30
死锁分析与解决综合案例
智能家居网关死锁分析、自动驾驶域控制器死锁分析、工业机器人控制器死锁分析、综合解决方案设计
综合案例网关