任务优先级反转与死锁解决方案
📚 共计 30 章节
第01章
死锁与优先级反转概述
什么是死锁?什么是优先级反转?为什么它们会发生在实时系统中?
基础概念
实时系统
第02章
死锁产生的四个必要条件
互斥、持有并等待、不可剥夺、循环等待。
必要条件
Coffman条件
第03章
死锁的预防策略
破坏四个必要条件之一,如使用资源一次性分配法。
预防
资源分配
第04章
死锁的避免算法
银行家算法详解与实例分析。
银行家
安全状态
第05章
死锁的检测与恢复
资源分配图、死锁检测算法、进程终止与资源抢占。
检测
恢复
第06章
优先级反转问题详解
低优先级任务持有锁导致高优先级任务被阻塞。
反转
阻塞
第07章
优先级继承协议
原理、实现方式与代码示例。
继承
协议
第08章
优先级天花板协议
原理、实现方式与代码示例。
天花板
协议
第09章
两种协议的对比分析
适用场景、优缺点、实时性影响。
对比
实时性
第10章
互斥锁与信号量
互斥锁与信号量在解决优先级反转中的作用。
互斥锁
信号量
第11章
读写锁与优先级反转
读者-写者问题中的优先级反转。
读写锁
读者写者
第12章
自旋锁与优先级反转
多核环境下的特殊考量。
自旋锁
多核
第13章
中断上下文中的死锁与反转
中断处理程序与任务之间的同步。
中断
同步
第14章
RTOS中的典型解决方案
FreeRTOS、RT-Thread、VxWorks 的实现对比。
RTOS
对比
第15章
Linux内核中的死锁与反转
RT-Linux、PREEMPT_RT补丁。
Linux
PREEMPT_RT
第16章
调试工具
GDB、Tracealyzer、SystemView。
调试
Trace
第17章
测试方法
压力测试、随机测试、形式化验证。
测试
验证
第18章
火星探路者事故
Mars Pathfinder 的优先级反转事故。
经典案例
NASA
第19章
Therac-25 死锁问题
医疗加速器中的死锁问题。
医疗
事故
第20章
多线程编程中的死锁预防
锁顺序、锁分级、超时机制。
多线程
预防
第21章
分布式系统中的死锁
资源分配图在分布式环境下的扩展。
分布式
资源图
第22章
数据库系统中的死锁
事务锁、死锁检测与回滚。
数据库
事务
第23章
自动驾驶系统中的应用与挑战
死锁与优先级反转在自动驾驶中的挑战。
自动驾驶
ADAS
第24章
工业控制系统中的应用与挑战
工控系统中的死锁与反转。
工控
ICS
第25章
航空航天系统中的应用与挑战
高可靠场景下的死锁与反转。
航空
航天
第26章
物联网(IoT)设备中的应用与挑战
资源受限设备中的同步问题。
IoT
嵌入式
第27章
无锁编程与优先级反转
Lock-Free 与优先级反转的关系。
无锁
原子操作
第28章
实时调度算法与反转
RMS、EDF 与优先级反转的相互作用。
RMS
EDF
第29章
形式化方法在死锁检测中的应用
TLA+、Promela 形式化验证。
形式化
TLA+
第30章
课程总结与最佳实践
如何设计一个无死锁、无优先级反转的实时系统。
总结
最佳实践