实时 Java 系统中非周期性事件的处理
在实时 Java 系统中,处理非周期性事件是一个重要的问题。为了更好地解决这个问题,本文将介绍两种算法方法:动态近似松弛窃取器(DASS)和最小近似松弛窃取器(MASS),并对它们进行性能评估,最后提出一个事件管理器 API。
1. 动态近似松弛窃取器(DASS)
Si(t) 是区间 [t, t + di(t)) 内 i 级空闲周期长度的总和。Davis 提出通过计算任务 τi 在该区间内可能遭受的最大干扰的界限来估计这个量。这个干扰的界限由每个优先级高于 τi 的任务的干扰总和给出。
干扰计算公式如下:
- (I_j^i(a, b) = c_i(t) + f_i(a, b)C_i + min(C_i, (b - x_i(a) - f_i(a, b)T_i) 0)) (3.3)
- (f_i(a, b) = \lfloor\frac{b - x_i(a)}{T_i}\rfloor_0) (3.4)
- (S_i(t) = (d_i(t) - t - \sum {j \geq i}I_i^j(t, d_i(t)))_0) (3.5)
其中,((x)_0) 表示 (max(x, 0)),(x_i(t)) 表示 τi 在 t 之后的第一次激活。
2. 最小近似松弛窃取器(MASS)
MASS 算法及其与 RTSJ API 的集成最初在相关研究中被提出。它是计算 Si(t) 下界的另一种方法,专门为用户空间实现而设计。
MASS 的核心思想是简化周期性任务开始实例时必须执行的操作。将 Si(t) 分解为两部分分别
超级会员免费看
订阅专栏 解锁全文
22

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



