飞机机电综合管理平台应用任务调度方法研究
2016-11-17张晓红王山虎
陈 福, 张晓红, 赵 刚, 王山虎
(中航工业西安航空 计算技术研究所, 西安 710065)
飞机机电综合管理平台应用任务调度方法研究
陈 福, 张晓红, 赵 刚, 王山虎
(中航工业西安航空 计算技术研究所, 西安 710065)
针对飞机机电综合管理平台应用任务多、实时性强、安全性高的特点,通过研究ARINC653标准中的分区、进程两级任务调度机制和机载机电系统应用软件特点,设计了飞机机电综合管理平台应用任务分区划分、分区时间调度规划和分区内任务调度的具体方法;该方法可实现不同安全级别应用任务安全、实时共享机电综合管理平台资源;仿真实验结果表明,该方法能确定性保证飞机机电综合管理平台全部任务的可调度性,提高了系统安全性和硬件资源利用率,降低了系统开销。
飞机;机电综合管理;分区划分;两级调度
0 引言
飞机机载机电系统是保障飞机正常、安全飞行及完成特定任务的液压、气压、机械和电气系统的总称,是飞行控制系统、火控系统、航空电子系统、显示系统和机载武器投放系统的安全保障系统,与航空电子系统、飞控系统和推进系统共同构成飞机关键子系统。其中,飞机机电系统主要包括燃油系统、环控系统、液压系统、供电系统、前轮转弯系统、起落架系统、刹车系统、气动系统、舱门系统、除冰系统、照明系统等公共设备。随着机电一体化技术的发展,这些机载公共设备被视为一个整体,并采用数据总线连接起来,实现飞机机电系统设备的高度综合,由机电综合管理平台实行统一管理。飞机机电综合不仅有利于减轻飞机重量、体积和连线的复杂性,而且有利于增加系统的容错能力、故障检测能力和升级维护能力。目前,世界上投入运营的大型民用飞机中,波音777、波音787、空客A380,均采用了机电综合管理技术。
但同时,高度综合化给机电软件的研发也带来了前所未有的挑战。综合化的飞机机电管理平台,计算、网络、存储等物理资源高度共享,应用软件种类多、规模庞大,应用任务成百上千,交互关系错综复杂。其中,大量的数据采集、数据处理、数据输出或上报等任务对实时性、可靠性要求非常高。一个应用任务能否及时响应,并在规定的周期时限内完成所有既定动作,直接影响到后续任务的完成,关系到整个机电综合管理平台功能性能的实现。因此,对飞机机电综合管理平台应用任务实时调度机制的研究,具有很大的现实意义。本文针对飞机机电综合管理平台应用任务的特点,研究了ARINC653标准中的分区、进程两级任务调度机制,提出了机电综合管理平台应用分区划分、分区调度规划及分区内任务调度的具体方法,保证所有应用任务都得到实时调度,使系统性能达到最佳。
1 基本概念
1.1 两级调度模型
综合模块化的航空电子系统软件标准ARINC653标准中提出了分区的概念,对运行在核心模块上的多个应用软件按功能可划分为多个分区,一个分区由一个或多个并发执行的进程组成,分区内所有进程共享分区所占有的系统资源。操作系统对分区所占有的时间、内存及其它系统资源具有控制权,从而使得模块中各分区相对独立。两级调度即分区级调度和进程级调度。分区级调度是指操作系统根据预先定义的分区调度配置表在规定的时间窗口内调度对应的分区运行;进程级调度是指在单个分区范围内按照既定的调度算法对各个进程进行调度。两级调度模型如图1所示。
图1 两级调度模型
1.2 分区级调度模型
根据ARINC653标准,核心操作系统采用时间片轮转调度的方式激活每一个分区。分区之间相互独立,每一个分区内部的进程只能在所属分区处于激活状态才有可能被执行。
分区级调度的主要特征有:
1) 以分区作为调度单元,系统中可包含多个分区,分区无优先级;
2) 分区之间在运行时间和物理空间上都相互隔离;
3) 分区只能在其拥有的时间窗口中被调度;
4) 分区调度采用静态配置的方法,由系统集成者在分区调度表里预先确定,系统按照分区调度表进行周期性地循环调度[1];
5) 系统可包含多张分区调度表,每个分区至少被其中一张分区调度表调度一次;
6) 在一张分区调度表中,分区可以被多次调度。
假定某系统共有n个分区,分别用P1,P2, ... ,Pn表示。其中,分区Pk(1≤k≤n)表示第k个分区。定义Pk=(TPk,CPkj,OPk),其中,TPk为分区Pk获取系统时间片的周期;CPkj为一个主时间框架内分区Pk第j次被调度所获取时间片的长度;OPk为分区Pk第一次获取时间片的系统时钟偏移量。假设系统当前所执行分区调度表的主时间框架周期为TA,在每一个轮转周期内,分区Pk总的时间片长度为,在其它TA-时间段内,分区Pk处于阻塞状态,分区内的任务无法运行。分区调度模型如图2所示。
图2 分区调度模型
1.3 进程级调度模型
分区由一个或多个进程组成,每个进程隶属于特定的分区。一个进程等同于一个任务,因此本文中的进程级调度即任务级调度。
任务级调度的主要特征有:
1) 以任务作为调度单元,任务具有优先级高低之分[2],任何任务在任何时刻都可以被更高优先级的任务抢占资源;
2) 在分区激活时刻,处于就绪态的最高优先级任务得到执行;
3) 分区中所有任务共享系统分配给分区的资源;
4) 支持周期任务调度和非周期任务调度;
5) 分区中的任务集在各自分区所获得的时间窗口内按照既定的调度算法调度执行,任务集在执行过程中遇到分区时间窗口结束时,暂停执行过程,等待该分区下一个时间窗口的到达。
假定某系统共有n个分区,分别用P1,P2,...,Pn表示。其中,第k个分区Pk(1≤k≤n)由m个任务组成,分别用tk1、tk2、tk3、…、tkm表示,tki(1≤k≤n,1≤i≤m)表示第k个分区的第i个任务。定义任务由tki=(Ctki、Ttki、Dtki、Stki)表示。任务特征定义如下:
1) 任务tki的执行时间Ctki:表示第k个分区第i个任务在无中断情况下执行所需要的时间;
2) 任务tki的周期Ttki:表示第k个分区第i个任务的周期;
3) 任务tki的截止时间Dtki:用于确定任务是否在规定的时间内完成[3];
4) 任务tki的当前状态Stki:任务在调度过程中可能为以下状态中的一种:休眠态(DORMANT),就绪态(READY),运行态(RUNNING),等待态(WAITTING)。
分区内任务由进程调度器依据优先级或其它改进型任务调度算法,在所属分区的分区窗口时间范围内进行调度[4]。分区内任务调度模型如图3所示。
图3 分区内任务调度模型
2 机电综合管理平台应用任务两级调度
2.1 机电综合管理平台应用任务分析
机电管理系统通过AFDX等总线与航电系统交联,通过离散量、模拟量、串行通讯接口等途径与机上电源、液压和燃油等机电系统交联。机电管理系统监控机上燃油、液压、环控、起落架、电源等十多个机电系统的工作状态,把采集的信号进行处理后,经总线传送至航电系统进行告警、显示或记录;发送燃油油量、发动机及电源等关键参数给机电参数显示器显示;同时将采集的数据传输给飞行参数记录系统进行记录。
为建立一个通用的机电综合管理平台应用任务两级调度仿真模型,本文设计的飞机机电综合处理平台能够完成多总线(AFDX、ARINC825、ARINC429、GJB289A等)数据采集和输出,完成燃油系统、液压系统、起落架系统、舱门系统、环境防护系统、防除冰系统、刹车系统、氧气系统、气动系统、防火系统、液冷系统、供电系统、照明系统的监测与控制、综合故障信息处理、告警信息处理和维护管理等功能。其中,应用任务全部为周期任务,最小任务周期为100 ms,最大任务周期为400 ms。
2.2 分区级调度设计
2.2.1 分区划分
分区划分是将机电综合管理平台中的应用软件划分到若干个应用分区。分区划分主要考虑以下几个因素(划分的原则是从功能独立性到任务速率)。
1) 功能独立性:功能相对独立的应用任务划分到不同分区;
2) 任务安全级别:不同安全级别的应用任务划分到不同分区;
3) 任务耦合度:耦合度高的应用任务划分到同一分区;
4) 任务速率:周期相同的应用任务划分到同一分区。
综合以上因素,本文将AFDX总线、ARINC825总线、ARINC429总线和GJB289A总线数据接收和发送、离散量模拟量输入输出等IO类任务划分到一个分区,命名为IO分区;为燃油、环控、液压、起落架等机电子系统分别划分一个应用分区,管理该子系统下的所有应用任务,并以子系统名命分区名,分别为起落架分区、舱门分区、燃油分区、防火分区、电气分区、液压分区、环控分区。平台健康监控、故障记录、故障上报等系统管理功能,纳入维护分区,共计9个分区。
2.2.2 分区时间调度表设计
分区时间调度表的配置项主要包括分区名、起始运行时刻和分区执行时间。分区时间调度表规划了分区的调度顺序以及分区窗口持续时间。一般采用主时间框架对分区时间进行配置,主时间框架为每一个分区分配一个或者多个时间窗口。在系统的运行过程中,该框架周而复始地循环执行。
主时间框架的大小通过各个分区的周期计算得到,而分区的周期的确定需要通过分区内的进程来决定,包括周期进程和非周期进程,既要保证分区内周期进程的截至时间,又要保证非周期进程的响应时间。
本文中,IO分区包含有AFDX总线消息收发周期任务(周期为100 ms)、ARINC825总线消息收发周期任务(周期为100ms)、ARINC429总线消息收发周期任务(周期为100 ms)、GJB289A总线消息收发周期任务(周期为100 ms),因此IO分区的调度时间间隔不能超过100 ms;起落架分区有4个周期任务,周期均为100 ms;舱门分区有9个周期任务,其中包含6个100 ms周期任务,1个200ms周期任务和2个400 ms周期任务;燃油分区有6个周期任务,其中包含2个100 ms周期任务,4个200 ms周期任务;防火分区有6个周期任务,其中包含2个100 ms周期任务,1个200 ms周期任务和3个400 ms周期任务;电气分区有5个周期任务,其中包含3个200 ms周期任务,2个400 ms周期任务;液压分区有3个周期任务,周期均为400 ms;环控分区有8个周期任务,周期均为100 ms;维护分区有6个周期任务,周期均为200 ms。飞机机电综合管理平台应用软件分区及时间框架设计如表1所示,主时间框架为100 ms。
表1 应用软件分区及时间框架设计
2.3 任务级调度设计
针对飞机机电综合管理平台应用分区任务特点,采用优先级调度算法进行任务调度。首先,采用速率单调调度算法(rate monotonic scheduling, RMS)确定分区内任务的优先级。RMS算法是一种静态分配优先级实时调度算法[5],它根据任务的周期来分配优先级,任务周期越小,其优先级越高。由于采取抢占式策略,高优先级任务就绪后可立即抢占低优先级任务资源[6]。实验证明,在任务的截至时间等于其周期的条件下,RMS算法是最优的静态调度算法。以包含有6个100 ms周期任务,1个200 ms周期任务和2个400 ms周期任务的舱门分区为例,根据RMS算法,100 ms周期任务优先级最高,200 ms周期任务优先级次之,400 ms周期任务优先级最低。
根据RMS调度算法、任务周期以及任务间的关联性,舱门分区任务优先级设计如表2所示。
表2 舱门分区任务优先级设计
3 仿真实验
使用System Viewer仿真工具对机电综合管理平台各个应用分区的任务调度进行仿真。分区级调度仿真结果如图4所示。
图4 分区级调度仿真
图4随机选择了一段机电综合管理平台应用运行时间作为分析对象,第575 ms到第775 ms,覆盖了两个主时间框架。图4右边部分的9条横向虚线,从上往下分别代表IO分区、燃油分区、液压分区、环控分区、舱门分区、电气分区、起落架分区、防火分区和维护分区的时间窗口调度情况,横向虚线上的实线段代表该分区此刻正在被调度。从图4可以看出,9个分区严格按照分区调度表预先配置的先后顺序及分区时间窗口调度,每100 ms的主时间框架里,所有分区都依次执行一遍,分区之间在时间上相互隔离。
分区内任务级调度,按照优先级抢占策略进行。以舱门分区为例,任务级调度仿真结果如图5和图6所示。图5右边部分纵向标线上的白点代表其左侧对应的周期任务正在被执行。从图5可以看出,每隔100 ms,舱门分区的舱门数据采集、舱门状态判断任务、登机门控制、舱门告警发送、舱门数据处理和异常处理这6个周期为100 ms的任务被执行完一次;每隔200 ms,舱门分区的飞行参数处理任务被执行完一次;每隔400 ms,舱门分区的简图页发送、故障记录任务被执行完一次。9个周期任务均无超时现象。
图5 舱门分区内任务周期性调度情况
图6给出了一个舱门分区调度时间窗口内,9个应用任务按照优先级抢占策略调度的情况。6个优先级为150的应用任务先得到执行,然后执行优先级为140的应用任务,最后执行优先级为120的两个应用任务。根据分区调度表中对舱门分区的时间窗口配置,9个应用任务都执行完毕后,舱门分区时间窗口仍有少量剩余,此时舱门分区进入空闲状态,等待舱门分区时间窗口结束,方可切换至下一分区。
图6 舱门分区内任务优先级抢占调度情况
4 结论
本文参照ARINC653标准提出的分区、进程两级任务调度机制,并结合飞机机电综合管理平台应用任务特点,详细阐述了飞机机电综合管理平台应用任务分区划分、分区时间调度配置、分区内任务调度的具体方法,并通过仿真试验证明了该方法的可行性和有效性。该方法对解决飞机机电综合管理平台大量应用任务的实时调度问题具有很高的实用价值,目前已在多个飞机型号上完成试飞验证。下一步将研究任务动态调度算法在强实时分区中的应用及其安全性评估方法。
[1] 李昕颖,顾 健,何 锋,等. 强实时系统在强分区约束下的双层分区调度[J]. 计算机学报,2010,33(6):1032-1039.
[2] 曹广旭,蒋泽军,王丽芳,等. 一种改进的强分区约束的实时调度算法[J]. 微电子学与计算机,2012,29(5):108-112.
[3] 张永悦,云利军,孙 瑜. 基于分区的航电系统调度分析工具实现[J]. 计算机工程,2014,40(4):42-47.
[4] 袁 翔,胡 军,马金晶,等. 基于AADL的综合航电分区系统可调度性判定[J]. 计算机工程,2014,40(10):52-60.
[5] 李 君,徐凤霞. 基于CAN总线网络控制系统的混合调度算法研究[J]. 计算机测量与控制,2014,22(11):3687-3690.
[6] 郭 伟,姚恩涛,杨善水,等. 基于CAN总线的机载机电综合管理平台设计[J]. 测控技术,2011,30(3):106-109.
Research on Application Task Scheduling Method for Aircraft Electro-Mechanical Integrated Management Platform
Chen Fu, Zhang Xiaohong, Zhao Gang, Wang Shanhu
(Aeronautics Computing Technique Research Institute, Xi’an 710065, China)
In view of the aircraft electro-mechanical integrated management platform application tasks, real-time, high security features, by researching ARINC653 standard and the characteristics of the application tasks of the electro-mechanical integrated management platform, proposes application tasks partition dividing method、partition scheduling strategy and tasks scheduling algorithm within partition. The method can achieve that different security levels of real-time application tasks can be implemented to share the same processor resources. The simulation results show that the method can guarantee the performance of all the tasks of the electro-mechanical integrated management platform of aircraft, and also improve the system security and hardware resource utilization, and reduce the system overhead.
aircraft; electro-mechanical integrated management; partition divide; two level scheduling
2015-10-12;
2015-11-06。
国家重大专项资助项目(2012ZX01041-006)。
陈 福(1984-),男,重庆人,硕士,工程师,主要从事嵌入式实时操作系统、机载嵌入式软件方向的研究。
1671-4598(2016)03-0255-03
10.16526/j.cnki.11-4762/tp.2016.03.070
TP315
A