王明明,胡 军,张维珺,李宛倩
(南京航空航天大学 计算机科学与技术学院,江苏 南京 211106)
飞机机载系统历经几代的发展,经历了分立式航电、联合式航电系统和综合模块化航空电子系统(integrated modular avionics,IMA)[1-2],机载航空电子系统现已广泛采用IMA。在IMA系统中,多个实时应用以时间/空间多分区的形式在计算平台上同时运行,有效提升了系统的功能、性能、可靠性和可维护性,同时降低了开发、维护和升级的支出。资源的共享是IMA系统的重要特征,或者说是IMA系统的核心功能,只有让资源有效合理的共享,才能合理分配和使用航电系统的资源。在综合航电系统开发过程中,对其中各个子系统和组件进行合理高效的资源分配并确保资源配置的安全性尤为重要。
IMA系统资源配置是综合航电系统整个开发过程中至关重要的一个环节,如何确保已分配的资源满足系统需求是系统能够安全正确运行的必要条件。由于IMA系统的资源共享特性,IMA系统结构是由多个硬件单元通过AFDX(avionics full duplex switched Ethernet,全双工交换式以太网)连接起来[3],因此考虑网络层次的资源配置验证对系统完备性的提升有很大必要。文中从时间资源验证角度,考虑分配各AFDX连接的IPM(integrated processing module,综合处理模块)资源时,根据需求给运行在IPM上的多个应用程序分配CPU时间,由于IMA系统分区具有分区间调度和分区内调度的两级调度特性,因此确保所有分区的调度时间满足应用程序需求以及分区内的所有任务满足调度时间约束是文中的主要研究内容。
模型驱动工程(model driven engineering,MDE)是一种以建模(modeling)和模型转换(model transformation)为主要途径的软件开发方法,是近年来出现在系统工程和软件工程领域中的主流方法,其基本思想是以系统模型设计、模型转换与分析/验证为工程的重要核心,提高对复杂工程系统开发与维护的能力和效率[4-6]。基于模型的系统开发和形式化方法的要求[7-9]也已经在最新版本的航空软件适航标准DO-178C中正式提出。MARTE(modeling and analysis of real-time and embedded systems,实时嵌入式系统建模与分析)支持对复杂嵌入式系统设计中所需的功能建模以及广泛存在的时间约束、资源分配等非功能属性的建模与分析,是目前工业界已经得到应用的一类专门针对复杂实时嵌入式系统设计与分析的规范,应用MARTE的实时特性对系统时间行为进行建模描述将有助于对系统时间资源需求方面的验证[10-11]。
根据IMA系统资源配置过程中对系统时间资源的分配,确保系统分区内的任务能够满足调度时间约束要求,采用基于模型驱动的方法对AFDX网络下IMA系统进行建模并采用第三方工具进行可调度性分析来验证CPU时间资源配置的正确性。
本节主要从IMA系统资源方面阐述IMA体系结构,整个系统网络架构由IPM、AFDX交换机、AFDX终端系统、远程数据集中器(remote data collector,RDC)等组成[12],各设备模块之间通过航空电子通信网络实现数据通信。
IPM是计算资源提供者,为驻留在IPM中的应用分区提供计算资源,包括内存和调度时间;AFDX交换机提供消息转发等功能,多个交换机互联形成一个AFDX网络;AFDX终端提供用于将设备接入到AFDX网络的接口;RDC设备负责收集信息和发送经过处理的信息。
MARTE是OMG于2007年底发布的新UML Profile,用来取代原有的针对调度、性能和时间的UML Profile SPT[13]。MARTE不仅能够对复杂嵌入式实时系统中软硬件等层面的功能性和非功能性方面进行有效建模,同时与UML2.0标准和MDA兼容,其作为UML推荐的实时和嵌入式系统建模的正式规范,目前已被工业界认可并使用。MARTE中主要包含有基础模型包、设计模型包和分析模型包,分别封装的包括基础(foundation)、建模(modeling)和分析(analyzing)3个部分。
MAST(modeling and analysis suite for real-time applications,实时系统建模与分析套件)是一套用于实时应用建模与调度性分析的开源工具,提供了时间需求建模、分析等工具[14]。MAST工具集的核心是MAST模型,通过分析实时系统应用的时间行为来作为MAST工具输入。目前MAST模型包含MAST-1和MAST-2两种模型,模型格式主要为文本格式或XML格式,其中MAST-2是在MAST-1模型的基础上增加了AFDX网络支持等功能,因此文中主要使用MAST-2模型来描述系统的时间行为。根据MAST规范,MAST-2模型可通过MARTE模型标准进行图形化描述,MAST_Model表示整个实时系统行为的MAST模型描述,包括全局属性模型名称和时间等;MAST-2模型包含了多个模型元素,其中Processing_Resource用来描述一个硬件组件的处理能力,包括执行一段代码或转发一组消息等;Scheduler模型元素通过采用适当的调度策略来管理分配到处理器上的应用或任务;Schedulable _Resource模型元素描述了一个可调度实体,如处理器中一个执行的任务或者网络中的通信任务;Operation模型元素描述某个计算任务或者消息传送的执行能力范围,包括任务执行时间范围和传送消息大小范围;End_To_End_Flow模型元素描述了系统中执行的活动在一系列事件触发条件下相互之间的联系,其中包括外部事件External_Events、内部事件Internal_Events(包含时间需求)以及事件处理器Event_Handlers三种类型。
将某飞机级功能集成到IMA平台之前,需要根据该功能需求和IMA平台提供的资源功能域对系统进行资源的有效配置。图1给出了一个IMA资源配置流程框架,包括配置过程中必要的资源配置验证,使得整个配置方法是一个循环迭代的过程,第4节将详细给出针对IPM处理器时间调度资源分配的验证方法。
图1 IMA系统资源配置流程
IMA资源配置过程为:
(1)配置准备:在IMA资源配置工作前需要设置一些应用在整个工程配置中的通用参数、属性和约束等,例如系统可用资源域、电源总线等。
(2)获取系统驻留功能需求(host function requirement,HFRQ)和资源域需求:根据对需要集成到IMA平台上的飞机级功能的分析,获取具体的计算资源、I/O资源、通信资源等需求,同时包括安全性需求,再根据系统宿主功能需求所要求的资源,获取所需系统资源需求(如IPM、RDC、AFDX等资源),可将需求定义形成指定格式配置文件(如XML),在今后工作中方便解析配置文件重新获取需求。
(3)IMA资源计算:根据HFRQ和资源域计算IMA系统配置所需的资源数量。
(4)生成IMA网络架构图:根据HFRQ和资源域以及资源的初步计算,形成系统网络架构图,并根据需求将系统资源组件通过总线进行连接。
(5)资源分配:根据HFRQ和资源域进行系统资源(包括计算资源、IO资源、通信资源)的分配。
(6)形成配置文件:资源配置完成后形成配置文件,并对配置文件进行分析与验证。
在资源配置过程中需要进行必要的验证工作,整个配置方法是一个循环迭代不断修正的过程,因此拓扑图产生后需要进行资源的重新计算、资源分配后需要进行资源的重新计算和网络架构图的重新生成等,其中对IPM时间资源的配置验证是文中的主要工作,对于其他如IO资源、通信资源以及IPM内存资源的配置验证将在后续工作中展开。
在配置IMA系统资源时,若想验证分配的可调度性,需要使用MARTE对系统的时间及其约束等进行建模。文中从网络架构层面,暂不考虑AFDX交换机内部复杂结构,针对IMA系统中的网络通信和计算资源,对其中虚拟链路、AFDX终端、资源设备模块、分区、进程等进行建模并分析。
3.2.1 虚拟链路建模
虚拟链路是一条逻辑线路,连接AFDX网络中相互通信的两个终端。虚拟链路具有隔离带宽资源的功能。可以使用MARTE内部的CM组件表示相互通信的两个终端之间的数据传输,数据帧的长度可以用其中的elementSize属性值来表示,带宽的分配间隙参数可以用此组件内部的capacity属性和elementSize属性来表示,数据传输模式可以用该组件内部的transmMode属性来表示。
3.2.2 AFDX终端建模
AFDX终端是AFDX网络与外部设备之间进行通信的接口,执行设备或者从分区发出的通信任务,并且发送和转发数据。AFDX终端系统通过设置系统的相关参数来满足系统的通信需求,这些参数包括最小包间隙和终端最大数据帧长等。可以使用CEP组件表示AFDX终端,AFDX终端与通信链路之间传输的数据帧大小参数可以用该组件中的packetSize属性表示。
3.2.3 资源设备模块建模
IMA系统中的资源设备模块包括核心处理模块IPM、远程数据集中器RDC、AFDX交换机以及控制器等,每个模块内部都有自己独立的处理单元来执行相应的功能。其中IPM为驻留在分区中的应用提供计算资源,AFDX交换机提供通信资源,用来提供消息转发功能,RDC作为航电系统输入输出设备负责收集数据并对数据进行封装。在MARTE内,可以用hwProcessor组件表示系统的执行环境,hwProcessor组件可以用来对IMA中IPM模块概念进行建模,模块名可用description属性来定义,分区之间的调度策略的建模可以用hwProcessor组件的mainScheduler中的schedPolicy值来表示。同时MARTE中的hwProcessor组件和HwDevice组件可表示AFDX交换机、RDC等资源模块概念。
3.2.4 分区建模
分区(partition)的重要设计思想就是隔离性,每个进程只能在其所在的分区里执行,且各个分区内部的任务的执行是独立的。隔离性包括时间和空间隔离性。MARTE的SR组件和PR组件可以用来表示系统运行时资源的分配情况。所以用这两个组件来表示分区。分区内的任务调度信息可以用SR组件来表示,分区调度方法相关信息可以表示为SR组件里的schedulers属性,分区中的任务集也可以用PR组件来表示。
3.2.5 进程建模
进程(process)在分区内,其中的资源包括代码、数据和存储区等。上节中提到的SR组件可以用来表示分区中进程的概念。
在完成了IMA系统中资源配置相关信息的MARTE建模后,本节将基于MAST对系统进行可调度性判定,以验证时间资源配置的正确性。
在IMA系统的IPM模块中包含有多个分区,各分区里面包含有其任务的集合。资源配置阶段将处理器时间通过时间片来分配到每个分区,分区里的任务运行分配的时间片(时间片包含偏移量(offset)和持续时间(duration)两个参数),当时间片用完时,在下一个时间片到来前暂停执行操作。对应各个分区之间和分区内部的任务集合,此调度模型通过下面两级调度策略来实现。
(1)分区间调度:该调度是在IPM资源配置时确定的,每个分区周期性地分配到时间片,时间片大小用duration表示。所有分区至少分配到一个分区窗口。分区间调度需要保证所有分区的时间片大小和周期以及主时间框架要满足需求,且窗口不能重合。
(2)分区内调度:分区内调度根据对应的任务调度策略来对任务进程集进行时间分配。在IPM资源配置阶段是无法为每个任务具体分配到时间片的,所以无法直接判定每个任务获得的时间片是否都满足需求。这里需要用户自定义调度策略,然后借助于MAST工具进行可调度性的判定。
根据IMA系统分区调度特性,验证IMA系统时间资源的配置,提出了一套仿真方法,该方法基于MAST工具,仿真判定IMA系统分区的可调度性。IMA系统可调度性验证框架如图2所示。
根据IMA系统的MARTE模型描述和相关时间需求约束可以建立MAST-2文本模型,用其作为MAST可调度性判定工具的输入来分析系统的可调度性。MAST-2模型元素在第2.3节已经介绍,下面将描述如何根据MARTE模型构建相应的MAST-2文本模型,从而描述IMA系统,主要从Processing_Resource、Scheduler、Scheduling_Resource、Operation、End_To_End_Flow等MAST-2模型元素来描述相关IMA系统的属性。
图2 IMA系统可调度性验证框架
Processing_Resource用来描述一个硬件组件的处理能力,包括执行一段代码或转发一组消息等。Processing_Resource的子类型有Regular_Processor和AFDX_Link等,Regular_Processor描述处理器模块执行应用程序的能力,AFDX_Link描述处理器或交换机之间采用AFDX协议传输消息的链路。所以MARTE模型中IPM模块可以用Processing_Resource中的Regular_Processor类型表示,AFDX交换机网络可以用AFDX_Link表示。
(1)Scheduler模型元素。
Scheduler模型元素通过采用适当的调度策略来管理分配到处理器上的应用或任务,调度策略包含固定优先级Fixed_Priority_Policy、最早截止时间优先EDF等。Scheduler具有分层结构,包含Primary_Scheduler和Secondary_Scheduler类型。
(2)Schedulable_Resource模型元素。
Schedulable_Resource模型元素描述了一个可调度实体,如处理器中一个执行的任务或者网络中的通信任务。Schedulable_Resource的子类型有Thread和Communication_Channel,Thread描述Regular_Processor模型中一个线程或者任务的执行,Communication_Channel描述网络中消息的传输。因此在IMA系统的MARTE模型中,每个进程任务可以由Thread类型来描述。
(3)Operation模型元素。
Operation元素描述某个计算任务或者消息传送的执行需要的处理能力范围,包括任务执行时间范围和传送消息大小范围。Operation的子类型包括Code_Operation和Message_Operation,分别描述计算任务和消息传送的处理。
(4)End_To_End_Flow模型元素。
End_To_End_Flow模型元素描述了系统中执行的活动在一系列事件触发条件下相互之间的联系,其中包括外部事件External_Events、内部事件Internal_Events(包含时间需求)以及事件处理器Event_Handlers三种类型。
可将IMA分区间调度用End_To_End_Flow模型元素描述,各个分区的时间片设置在入口事件和结束事件之间,且分别拥有一个Hard global deadline表示分区可用的时间片。
基于第三节和第四节介绍的建模方法和时间资源分配的可调度性验证框架,本节将具体给出IMA系统中机载水处理子系统(WaterAndWaste,WAW)的例子,介绍使用MARTE对WAW系统相关属性进行建模,并借助MAST工具将MARTE模型转换成对应的MAST-2模型,加入自定义调度策略并进一步进行调度仿真,根据返回结果判断系统的可调度性。
根据航空规范ATA-38的描述,WAW系统主要功能是对飞机中的用水及污水进行处理,包括存储和传输清水、存储和移除污水。图3描述了WAW系统的硬件资源网络结构。根据IMA系统配置流程的介绍,该结构是在确定HFRQ和资源域后进行IMA估算、拓扑生成、RDC与交换机资源分配、IPM资源分配等流程后形成的。图中包含2个信号控制器用来接受WAW系统中蓄水池的各种信号,并以模拟信号的形式传递给对应的RDC;2个RDC与信号控制器和AFDX交换机相连进行数字和模拟信号的转换;2个AFDX交换机将各个设备连接到AFDX网络;1个IPM包含1个应用分区和1个系统分区,应用分区根据接受到的数据计算当前系统状态,并发送控制命令信号,系统分区主要监控错误信息等;以及各设备之间的通信虚拟链路。
图3 机载水处理系统架构
表1展示了WAW的分区调度信息。分区分为应用分区(Papp)和系统分区(Psys),调度策略分别为EDF(最早截止时间优先)和DMS(截止时间单调调度算法),分区下的任务集参数包括:周期、任务、执行时间和截止时间等。
表1 WAW系统分区调度信息 ms
按照第三节对IMA系统转化为MARTE模型的描述,可将WAW系统及其时间信息转换为MARTE对应组件描述,WAW系统对应的MARTE模型中,用HwProcessor组件和HwDevice组件表示系统中的2个AFDX交换机、2个RDC远程数据收集器以及2个控制器,其中包含一些属性参数;HwProcessor组件和MutualExclusionResource组件表示IPM处理器模块,其下包含一个系统分区和一个应用分区,分别用MARTE内部的swSchedulingResource和ProcessingResource两个组件以及该组件内部的属性的组合来表示,每个分区假设有两个运行的任务,用swSchedulingResource组件表示其调度属性;最后每个任务对应有时间约束信息,用MARTE中的TimeConstraint组件表示,包括任务运行时间片、截止时间等时间信息。
得到WAW系统的MARTE模型后,根据4.3节描述的方法及给出的实例建立WAW系统对应的MAST-2模型文本文件,并加入相关时间约束等自定义调度策略。图4为MAST工具分析得出的甘特图及分区可调性分析结果。
图4 甘特图及分区可调性分析结果
结果显示四个进程的甘特图未发生冲突的情况,时间分区资源配置验证通过。
在IMA系统资源配置过程中,若需要对时间资源进行重新配置,如对实例中WAW系统需增加一个应用分区Papp2,此时需要对分区Papp2分配时间片等时间资源,重新分配后的信息如表2所示。假设总时间框架保持10 ms未进行配置,则在对Papp2进行时间资源分配后,由于分区总时间片之和大于总时间框架,所以在进行验证工作之后返回的结果将是系统不可调度。
表2 WAW分区重配置调度信息 ms
通过文中介绍的时间资源配置验证方法以及相关实例的分析,可以检查IMA系统相关的资源配置是否满足需求,从而避免发生错误而导致的灾难性结果,确保了系统安全可靠的运行。
提出一种基于模型驱动的方法对IMA系统时间资源配置进行验证分析。首先,根据建模方法将IMA系统转换为相应的MARTE模型并加入时间约束来描述;其次,根据所得MARTE模型构建对应的MAST-2文本模型,并制定相应的自定义调度策略作为MAST工具的输入进行分析;最后调用MAST可调度性分析工具对MAST-2文本模型进行可调度性判定。通过可调度性验证IMA系统时间资源配置,如果不正确可进行资源的重配置和重判定,进而提高系统的安全性和可靠性。
未来的研究工作主要包括两个方面:第一,当前的验证工作主要针对IMA系统IPM资源分配过程中的时间资源分配,而整个资源配置过程还包括内存分配、通信资源分配等,所以为确保整个资源配置过程的安全性和可靠性,将会对与其他资源配置相关如内存分配的安全性等展开研究;第二,文中的实例分析对象为IMA系统中经过简化的机载水处理系统,未来的研究工作将针对IMA系统中其他复杂子系统乃至整个IMA系统本身进行资源配置相关的安全性验证工作,以提高整个系统在实际应用中的可用性和工作效率。
参考文献:
[1] PARR G R,EDWARDS R.Integrated modular avionics[J].Air & Space Europe,1999,1(2):72-75.
[2] 褚文奎,张凤鸣,樊晓光.综合模块化航空电子系统软件体系结构综述[J].航空学报,2009,30(10):1912-1917.
[3] ALENA R L,OSSENFORT J P,LAWS K I,et al.Communications for integrated modular avionics[C]//Aerospace conference.[s.l.]:IEEE,2007:1-18.
[4] SCHMIDT D C.Guest editor's introduction:model-driven engineering[J].Computer,2006,39(2):25-31.
[5] HUTCHINSON J,ROUNCEFIELD M,WHITTLE J.Model-driven engineering practices in industry[C]//33rd international conference on software engineering.[s.l.]:IEEE,2011:633-642.
[6] 胡 军,马金晶,刘 雪,等.模型驱动的安全关键系统重配置信息验证方法[J].计算机科学与探索,2015,9(4):385-402.
[7] RIERSON L.Developing safety-critical software:a practical guide for aviation software and DO-178c compliance[M].[s.l.]:CRC Press,2013.
[8] RUSHBY J.New challenges in certification for aircraft software[C]//Proceedings of the ninth ACM international conference on embedded software.New York,NY,USA:ACM,2011:211-218.
[9] MOY Y,LEDINOT E,DELSENY H,et al.Testing or formal verification:Do-178c alternatives and industrial experience[J].IEEE Software,2013,30(3):50-57.
[10] 张 天,Frédéric JOUAULT,Christian ATTIOGBE,等.基于MDE的异构模型转换:从MARTE模型到FIACRE模型[J].软件学报,2009,20(2):214-233.
[11] NARDONE R,MARRONE S.A model-driven methodology to evaluate performability of metro systems[J].Theory and Application of Multi-Formalism Modeling,2013,(1):259-270.
[12] LAUER M,ERMONT J,BONIOL F,et al.Latency and freshness analysis on IMA systems[C]//Emerging technologies & factory automation.[s.l.]:[s.n.],2011:1-8.
[13] MALLET F.CCSL:specifying clock constraints with UML/MARTE[J].Innovations in Systems & Software Engineering,2008,4(3):309-314.
[14] PASAJE J L M,HARBOUR M G,DRAKE J M.MAST real-time view:a graphic uml tool for modeling object-oriented real-time systems[C]//Real-time systems symposium.[s.l.]:[s.n.],2001:245-256.