2017-06-30 89 views

回答

1

抢先点是确保其他任务按照预定间隔运行。

由于runnables在任务的上下文中运行,并且任务可以被抢占,这意味着runnables本身可以被抢占。另一个结果是runnable只能被其他任务(或中断)中的runnables抢占。所以如果你的runnables A和B在同一个任务中运行,那么A将永远不会被B抢占,反之亦然--A和B是相互原子的。

Autosar进一步支持专属区域,这是一个基本上是关键部分的机制。多个可运行的程序可以使用相同的专用区域,并且如果一个可运行程序通过Rte_Enter进入专用区域,则没有其他可运行的程序可以进入相同的专用区域,直到第一个可运行程序以Rte_Exit离开它。

0

除了上面的答案,我想在Autosar中添加一个叫做Cooperative runnable placement的概念。根据这个概念,具有数据访问约束的可运行对象被分组为“Cooperative Runnables”,其中该组中的可运行对象永远不会抢占对方,但可以被不属于该组的可运行对象占先。

另外runnables在任务的上下文中执行,如果任务是可抢占的,那么runnables属于任务也是可抢占的。

相关问题