3. 通信任务建模

在卫星星座通信任务调度中,调度器真正“看见”的不是业务名称,而是一组被建模后的任务对象。任务建模的质量直接决定调度算法能否正确表达业务约束、能否在资源冲突时做出合理取舍。本节围绕五个核心维度展开:任务如何到达、优先级如何刻画、时延与带宽需求如何量化、任务之间如何依赖,以及如何用统一的形式化语言把这些属性组织成可计算、可校验的模型。

一、任务到达过程:从业务流到任务序列

任务到达过程描述“任务在什么时刻、以什么规律进入调度系统”。在卫星星座场景中,到达源可能包括地面站上注指令、用户终端发起通信请求、星间链路转发的数据包、遥感载荷下传计划等。建模时通常用到达时间序列 {a_1, a_2, …, a_n} 表示,其中 a_i 是第 i 个任务进入待调度队列的时刻。

若任务到达具有随机性,可用泊松过程近似:单位时间内到达任务数服从参数为 λ 的泊松分布,相邻到达间隔服从均值为 1/λ 的指数分布。例如某低轨星座区域用户请求平均每分钟 6 个任务,则 λ = 0.1 个/秒,平均间隔 10 秒。若任务到达具有周期性,如遥感卫星每轨固定下传一次,则用周期到达模型 a_k = a_0 + kT,T 为轨道周期。实际系统中常采用“混合到达”模型:周期性任务用确定序列,突发任务用泊松流叠加,并在仿真中通过随机种子复现。

到达过程建模的关键输出是任务到达曲线与队列积压曲线。到达曲线 A(t) 表示 [0,t] 内累计到达任务量,积压 Q(t) = A(t) - D(t),其中 D(t) 为累计完成量。调度器据此判断队列是否持续增长,从而决定是否触发限流或降级策略。

二、任务优先级:多因子加权与抢占判定

优先级不是单一数字,而是业务价值、时效紧迫度、资源稀缺度和公平性等多因子的综合。常用做法是构造加权评分函数:

P_i = w1 * U_i + w2 * (1 / d_i) + w3 * R_i + w4 * F_i

其中 U_i 为业务价值等级(如应急通信 1.0、常规数据 0.5),d_i 为剩余时延容忍度,R_i 为资源需求稀缺度,F_i 为公平性补偿项。权重 w1…w4 由任务类型决定,例如应急任务取 w1=0.5, w2=0.3,普通任务取 w1=0.2, w2=0.2。评分后按降序排列,形成优先级队列。

优先级还决定是否允许抢占。若高优先级任务到达时无空闲资源,可抢占低优先级任务占用的波束或时隙。抢占判定需比较“抢占收益”与“切换开销”:若 P_high - P_low > C_switch,则执行抢占;否则等待。这里的 C_switch 是波束切换、缓存迁移和重新同步带来的等效代价,通常用时间或资源单位折算。

三、时延与带宽需求:约束的量化表达

时延需求通常用三元组描述:最大端到端时延 D_max、时延抖动上限 J_max、以及时延容忍曲线。对于实时话音,D_max 常取 250 ms,J_max 取 50 ms;对于遥测数据,D_max 可放宽到数秒甚至分钟级。建模时把时延约束写成任务完成时刻 c_i 与到达时刻 a_i 的关系:c_i - a_i ≤ D_max,i。

带宽需求用任务所需速率 b_i(Mbps)和持续时间 τ_i(s)表示,二者乘积为数据量 V_i = b_i × τ_i(Mb)。例如某星间链路任务需 20 Mbps 持续 120 s,则数据量 2400 Mb。若链路可用带宽为 B,则同时承载任务集合 S 需满足 Σ_{i∈S} b_i ≤ B。当带宽不足时,可对任务降速传输,但会拉长 τ_i,进而影响时延约束,因此时延与带宽必须联合建模,不能分开处理。

通信任务建模五维关系图 到达过程 → 优先级 → 时延/带宽约束 → 依赖关系 → 形式化模型 任务到达过程 泊松流 λ=0.1/s 周期流 T=轨道周期 到达序列 {a₁,a₂,…} 积压 Q(t)=A(t)-D(t) 任务优先级 P=w₁U+w₂/d+w₃R+w₄F 应急/常规/背景三级 抢占判定 P差 > C_switch 优先级队列排序 时延与带宽需求 D_max / J_max 约束 b_i (Mbps), τ_i (s) V_i = b_i × τ_i Σb_i ≤ B 链路容量 任务依赖 串行/并行/汇聚 前驱-后继 DAG 数据依赖与控制依赖 拓扑排序约束 形式化描述:任务五元组 T_i = (a_i, p_i, d_i, b_i, dep_i) a_i 到达时刻 | p_i 优先级 | d_i 时延上限 | b_i 带宽需求 | dep_i 前驱任务集合 约束:c_i - a_i ≤ d_i,Σ_{j∈S} b_j ≤ B,c_i ≥ max_{k∈dep_i}(c_k) 目标:在满足约束前提下最大化加权完成率或最小化平均时延 示例:应急通信任务 T₁ 与遥感下传任务 T₂ T₁ = (a=0s, p=0.9, d=250ms, b=2Mbps, dep=∅) → 高优先级、低时延 T₂ = (a=10s, p=0.4, d=300s, b=20Mbps, dep={T₁}) → 依赖 T₁ 完成后启动 调度判定:T₁ 抢占波束,T₂ 等待 T₁ 释放资源后按序执行

四、任务依赖关系:DAG 与拓扑约束

任务依赖描述“谁必须在谁之前完成”。典型依赖包括:数据依赖(任务 B 需要任务 A 的输出数据)、控制依赖(任务 B 只能在任务 A 成功后才触发)、资源依赖(两个任务共用同一波束,必须串行)。依赖关系用有向无环图(DAG)表示,节点为任务,有向边 A → B 表示 A 是 B 的前驱。

DAG 建模后,调度必须满足拓扑序:任务 i 的开始时刻 s_i ≥ max_{k∈dep_i}(c_k)。若图中存在环,说明依赖定义矛盾,需在建模阶段检测并修正。对于汇聚型依赖,如任务 D 需要 B 和 C 都完成,则 s_D ≥ max(c_B, c_C);对于分支型依赖,A 完成后可并行触发 B 和 C,此时调度器可同时为 B、C 分配不同波束资源。

依赖关系还会影响关键路径。关键路径是 DAG 中从源到汇的最长路径,其长度决定整个任务集的最短完成时间。调度时优先保障关键路径上的任务资源,可有效压缩总工期。例如某成像任务链:指令上注 → 姿态调整 → 成像 → 数据下传,四步串行,关键路径即为该链,任何一步延迟都会直接推迟下传。

五、形式化描述方法:从自然语言到可计算模型

形式化描述的目标是让任务模型可被算法直接读取、校验和优化。推荐采用五元组:

T_i = (a_i, p_i, d_i, b_i, dep_i)

其中 a_i 为到达时刻,p_i 为优先级评分,d_i 为最大时延,b_i 为带宽需求,dep_i 为前驱任务集合。整个任务集 T = {T_1, T_2, …, T_n} 加上资源约束 Σ b_i ≤ B 和依赖约束 s_i ≥ max_{k∈dep_i}(c_k),构成一个约束满足问题。调度目标可写为:

max Σ p_i · x_i  或  min Σ (c_i - a_i)
s.t.  c_i - a_i ≤ d_i
      Σ_{i∈S_t} b_i ≤ B_t,  ∀t
      c_i ≥ max_{k∈dep_i}(c_k)

其中 x_i ∈ {0,1} 表示任务是否被成功调度。该形式化模型可直接输入整数规划求解器、启发式调度器或强化学习环境。建模时还需保留单位一致性:时间统一用秒,带宽统一用 Mbps,数据量统一用 Mb,避免量纲混用导致约束失效。

建模检查要点:到达过程是否区分周期与突发;优先级权重是否随任务类型调整;时延与带宽是否联合校验;依赖图是否无环;五元组字段是否完整且单位统一。建议在任务入库前用脚本自动校验 dep_i 的拓扑合法性,并输出关键路径长度作为调度难度参考。

综上,任务建模是把业务语言翻译成调度器可计算语言的关键步骤。到达过程决定输入节奏,优先级决定取舍顺序,时延与带宽决定资源可行性,依赖关系决定执行顺序,形式化五元组则把上述所有约束统一封装。只有这五个维度都准确建模,后续的波束分配、时隙规划和星间路由才有可靠的优化基础。