SDL实时任务:概念、实现与评估
1. 引言
规格描述语言(SDL)是为分布式系统设计的正式语言,凭借其时间概念和定时器机制,也能表达实时系统的某些方面。为增强其表达能力,此前提出、定义、实现并评估了一些语言扩展,如SDL实时信号和SDL进程优先级,这些扩展对提升网络控制系统的可预测性很有价值。
为进一步增强SDL的实时能力,考虑引入实时任务的概念。实时任务用于实时系统中组织和调度执行,以应对负载情况并满足截止时间。任务是代码单元的执行,可在状态显著变化(事件触发)或特定时间点(时间触发)动态启动。在SDL中,这些代码单元执行可组织为与一个或多个SDL进程相关的多个有序SDL转换执行。经研究发现,之前的扩展不足以在SDL中表达实时任务,因此设计了进一步的语言扩展,将实时任务的概念融入SDL的正式语法和语义中。
本文在概念上延续之前的工作,尤其着重于SDL实时任务的实现和评估。概念上,引入分布式实时任务的概念,它可跨多个SDL系统的多个SDL进程,还提出任务类型,用于在SDL进程中自然指定任务复用。本文重点是SDL实时任务和任务调度的实现与评估,通过一个自适应巡航控制器(ACC)的SDL规范在嵌入式硬件平台上的实验,展示了基于任务的调度在处理延迟和对关键事件的反应时间方面优于普通和基于优先级的调度。
2. 分布式SDL实时任务
2.1 SDL实时任务的概念
实时任务的正式定义基于一组转换执行和一个有最小元素的严格偏序,即每个实时任务从单个转换执行开始。实时任务是动态的,转换执行集在运行时确定,可能取决于系统的内部状态,如当前时间或SDL进程的状态,所有转换执行完成后任务终止。
定义1:实时任务τ