条件任务图调度:原理、算法与实验结果
1. 条件任务图与布尔函数图基础
在条件任务图(CTG)的调度中,我们可以将激活函数转化为析取范式,也就是最小项的析取形式。这里的最小项是一个或多个条件的合取(例如 (f(t_i) = m_0 \vee m_1 \vee \cdots) ,其中 (m_j = c_{j0} \wedge c_{j1} \wedge \cdots) )。
CTG 节点和布尔函数图(BFG)节点之间存在映射关系。例如,在图 1 中,任务 (t_2)、(t_3) 和 (t_4) 作为 CTG 节点,被映射到 BFG 中的同一个 (F) 节点 (F_a) 。它们实际上属于同一情景,并且具有相同的激活函数。
BFG 具有以下结构特性:
1. (B) 节点的父节点始终是 (F) 节点。
2. (B) 节点的父节点代表互斥的最小项或路径。
3. (B) 节点的出弧产生互斥的最小项或路径。
4. (F) 节点的父节点代表非互斥的最小项或路径。
5. (F) 节点的出弧产生非互斥的最小项或路径。
BFG 的构建过程原本具有指数级的时间复杂度,但如果满足控制流唯一性(CFU)属性,就可以用多项式复杂度的方法替代。
2. 控制流唯一性(CFU)
CFU 是一个重要的条件,对于每个非头任务 (t_i) ,至少存在一个前驱任务 (t_j) ,使得 (f(t_j) \wedge c_{ji} \Rightarrow f(t_i)) 。这里 (c_{ji}) 是可能标记弧 ((j, i)) 的条件;若不存在该条件,则 (c_{ji} = true) 。如果两个前驱任务 (t_j
超级会员免费看
订阅专栏 解锁全文
65

被折叠的 条评论
为什么被折叠?



