文章目录
传送门 ==>> AutoSAR实战系列300讲「糖果Autosar」总目录
1 资源的死锁
如下图所示,当两个任务等待对方占有的资源时,就会发生死锁。
OSEK 通过施加一组限制来防止死锁情况:
-
仅当所有任务资源都可用时,任务才会从就绪转换为运行。
-
任务在持有资源时既不能终止也不能进入等待状态。
-
必须以 LIFO(后进先出)顺序获取和释放多个资源。这意味着每个任务都在逻辑上管理它在堆栈上所需的资源。
-
任务不得获取它已经拥有的资源(需要时,可以使用链接资源来实现这一点)