我司总工程师与一飞院副总师联合在国家级刊物发表学术文章

 

    2019年12月20日,我司总工程师童强与中国航空工业集团公司第一飞机设计研究院张军红副总师联合在南京航空航天大学学报(国家级刊物)发布了基于软件虚拟化技术的新一代航空机载软件设计的学术文章。

 

学报图片

 

-----------------------------------------------

 

基于软件虚拟化技术的新一代航空机载软件设计

 

  中国航空工业集团公司第一飞机设计研究院 张军红 副总师  北京华智信科技发展有限公司 童强 总工程师  

 

摘要

当前航空机载设备软件系统的快速发展对目前国内外主流的机载软件架构提出了严峻的挑战,因此很有必要对新一代航空机载设备软件架构进行设计研究。本文对航空机载设备软件架构的发展情况进行分析,对当前计算机业界最新的软件架构技术进行研究,提出了新一代航空机载设备软件架构的技术思路和设计方案, 并将其与不同架构软件的关键性能指标进行测试对比,表明了设计方案的有效性。

 

关键词

航空机载设备; 软件架构; 嵌入式实时操作系统; 虚拟化; 容器

现代飞行器,尤其是军用飞行器技术发展迅速[1],一方面是现代战争信息化、联合化、无人化的趋势对飞行器提出了大量新的需求,另一方面是计算机软硬件、通信技术的快速发展为飞行器满足新的需求提供了支撑基础。

随着航空电子系统技术发展,飞行器机载设备中的硬件越来越标准化和通用化,因此越来越多的功能是在软件中实现的,软件变得越来越复杂和重要。根据航空机载设备软件复杂性的进一步快速增长和当前航空机载设备软件研制中遇到的实际问题,可以预见,当前主流的航空机载设备软件架构在不久的将来会无法满足要求。目前国外主要的机载嵌入式操作系统厂商已经开始将虚拟化等技术应用于操作系统,以支持多核处理器和面对机载软件对机载软件架构的挑战。因此,有必要研究新一代航空机载设备软件架构,以满足未来飞行器技术发展的需求[2]

 

1 航空机载设备软件架构发展与当前情况

1.1 航空机载设备软件架构发展

航空机载设备软件架构到目前为止经历了3代机载软件架构,从第一代发展到当前使用的第3代架构,适应了过去机载软件功能、规模、复杂度的快速发展[3]1)。

http://jnuaa.nuaa.edu.cn/html/njhkht/201906006/alternativeImage/548c17e1-7234-4a5f-9db4-513ee877c57e-F001.png

航空机载软件架构变迁图

Fig.1 Aeronautical airborne software architecture transition

(1) 第一代机载软件架构:软件没有使用操作系统,底层为一个较为简单的实时监控软件来支持系统的引导、硬件初始化、调试支撑等功能,机载应用软件主要按照功能进行模块划分。

(2) 第二代机载软件架构:软件采用了嵌入式平模式操作系统(例如:VxWorks 5.5操作系统、天脉1操作系统),机载应用软件仍然按照功能模块进行划分,但是通过操作系统对硬件进行隔离并实现实时多任务管理功能,较大的简化了机载应用软件的开发难度。

(3) 第三代机载软件架构:软件采用了分区操作系统(例如:VxWorks653 2.4操作系统、DeltaSVM操作系统、天脉2操作系统)和软件中间件技术,支持在一个设备上运行多个机载应用软件,实现软件功能的综合化。

 

1.2 当前航空机载设备软件架构

当前新型号的航空机载设备软件大部分采用了第三代机载软件架构:分区操作系统 + 中间件 + 分区应用。其特点是应用了高性能处理器和高速总线技术,使用软件分区技术支撑多应用软件综合,采用静态配置方式支持确定的系统能力重构[4]。例如,在飞行器管理系统(Vehicle management systemsVMS)中通过分区操作系统和中间件技术将传统的飞控应用与机电管理应用进行了综合[5]2)。

http://jnuaa.nuaa.edu.cn/html/njhkht/201906006/alternativeImage/548c17e1-7234-4a5f-9db4-513ee877c57e-F002.png

飞行器管理系统软件架构示意图

Fig.2 VMS software architecture

在航电系统中,系统采用了综合模块化航空电子(Integrated modular avionicsIMA)架构,通过一个综合中央处理机(Integrated center processorICP)包含若干的通用功能模块)综合了所有的航电应用3)。综合中央处理机中含有计算处理能力的通用功能模块(Common functional modulesCFM)也是采用了符合ARINC653[6]的分区操作系统 + 中间件 + 分区应用的第三代机载软件架构。

http://jnuaa.nuaa.edu.cn/html/njhkht/201906006/alternativeImage/548c17e1-7234-4a5f-9db4-513ee877c57e-F003.png

3 航电ICP系统软件架构示意图

Fig.3 ICP system software architecture

 

1.3 未来航空机载设备软件发展面临的系统架构问题

现代战争呈现出信息化、联合化、无人化技术特征[7],由此对装备中各种电子系统提出了网络化、综合化、智能化的要求,云计算、大数据、人工智能、自组网等大量的先进信息技术正在被应用到装备的电子系统中[8],各类机载系统也由此面临着计算机软硬件快速发展的挑战。在机载计算机硬件方面,多核处理器技术已经开始应用,为机载系统提供了更强大的处理能力;机载软件方面功能与规模呈现出爆发式的增长。

目前的机载软件平台(分区操作系统 + 中间件 + 分区应用)已不能很好的满足机载软件发展的需要,主要有以下几个问题。

(1) 机载计算机硬件资源利用率低:通过应用多核处理器技术,机载计算机硬件处理能力大幅增加,但由于目前的分区操作系统采用了完全静态配置方式,应用软件都需要为其配置最大情况下的运行时间、存储、IO等资源,并且配置之外富余的计算能力和资源都不能被使用,这导致硬件资源利用率低。

(2) 随着软件功能增加,机载系统的资源设计与配置难度快速增加:随着大量新的机载软件功能的综合,由于系统要求全静态配置,需要明确被综合的每一个应用软件其运行时间、存储、IO等资源使用上限,并为其进行资源属性的配置,配置之间不能冲突,当应用与分区数量增加时,系统设计与配置难度接近几何级的增大。

(3) 机载软件系统的可重构性实现困难:目前机载系统都希望通过应用软件重构能力的实现来提高机载系统的可靠性、可用性与抗毁性,但目前应用软件的运行环境资源(分区)设定太简略和固定,应用软件与对应分区的绑定性太高,所有的可重构模式必需提前明确和部署,在软件功能越来越复杂,分区越来越多的情况下,当前的重构方式只能应用于少量的假设情况,难以满足未来复杂机载系统的可重构性需求。

 

1.4 国外航空机载软件架构最新发展

为了支持多核处理器和面对机载软件发展对机载软件架构的挑战,国外主要的机载嵌入式操作系统厂商均引入了新的机载软件架构。美国主要的航电机载操作系统提供商WindRiver公司在近两年推出的VxWorks653 3.0版本和3.1版本中采用了虚拟机技术架构,支持在同一个处理器上运行多个客户操作系统(GuestOS)。包括满足ARINC653标准的CretOS、提供POSIX接口的定制Linux,在GuestOS之上支持运行使用对应接口的机载应用软件。大量用于欧美民航客机飞控系统的美国DDCI公司DeOS操作系统和大量用于欧美军用飞机飞控系统的美国GreenHills公司Integrity178操作系统,均在近两年推出了基于虚拟化技术支持多核处理器和多种操作系统接口的产品版本。

 

 

2 新一代航空机载设备软件架构的设计考虑

2.1 新架构总体思路

在商业软件领域,对类似的问题目前主要是采用虚拟化技术来解决。其中起步较早的是虚拟机技术(硬虚拟化,基于硬件层面提供的虚拟化能力支持),将一台计算机硬件虚拟化为多台虚拟机,可以各自安装相同或不同的操作系统,依此为商业计算系统提供可伸缩弹性计算能力[9]

近几年来容器技术(软虚拟化)被广泛应用,在很多应用场景下替换了虚拟机技术[10]。容器技术构建在操作系统之上,为每一个应用提供一个完备、独立并且可控的运行环境,从应用软件看来容器就像是提供了一个独立的计算机硬件和操作系统环境(4)。

http://jnuaa.nuaa.edu.cn/html/njhkht/201906006/alternativeImage/548c17e1-7234-4a5f-9db4-513ee877c57e-F004.png

虚拟机技术与容器技术示意图

Fig.4 Virtual machine & docker technology

4所示,可以看到容器技术比虚拟机技术减少了硬件虚拟化管理的元操作系统和Hypervisor管理层级,并减少了操作系统副本[11]。这使得容器在性能和资源消耗上明显优于虚拟机[12],容器技术的性能是虚拟机技术的两倍,资源消耗小于虚拟机技术的四分之一[13]。虚拟机技术的主要优点是可以在一台计算机硬件上同时运行多种操作系统[14],但是航空机载软件没有此需求。而容器技术的思路十分契合航空机载软件的特点和发展需要,基于容器技术搭建整个机载软件平台,能够解决机载软件发展面临的主要问题,进而支撑航空武器装备满足现代战争的特点与趋势,满足国防能力发展的需要。

 

2.2 新架构设计及其运行方案

基于容器技术的机载软件平台由包含了容器引擎的机载嵌入式操作系统、容器、中间件和众多应用软件构成(5)。系统配置了多种容器类型,如用于设计与调试的容器类型,可以自动统计应用的资源使用;又如用于上机飞行的容器类型,根据配置严格控制应用的资源使用;再如为低安全级别应用提供支持动态特性的容器等等。容器引擎根据系统配置数据从系统资源中分配对应的资源,然后加载容器映像进行容器的实例化,并在容器中加载对应的若干个应用映像后进入实际运行状态(6)。

http://jnuaa.nuaa.edu.cn/html/njhkht/201906006/alternativeImage/548c17e1-7234-4a5f-9db4-513ee877c57e-F005.png

基于容器技术的航空机载软件架构示意图

Fig.5 Aeronautical airborne software architecture based on docker technology

http://jnuaa.nuaa.edu.cn/html/njhkht/201906006/alternativeImage/548c17e1-7234-4a5f-9db4-513ee877c57e-F006.png

新架构下软件系统的运行方案图

Fig.6 Operation formula based on new software architecture

 

2.3 新架构方案的技术可行性

通过以上方案可以看到,容器技术的引入能够解决机载软件发展所面临的主要问题。虽然目前开源的容器技术只面向LinuxWindows系统,在进行嵌入式高可靠和强实时的改造上存在较大难度,但国内的某些单位已经在机载嵌入式系统中实现了软虚拟化技术的研发和应用,具备良好的技术基础。目前机载系统已经大量的采用国产机载操作系统,国内的操作系统开发商已经掌握了其核心技术,完全有能力配合完成对机载嵌入式操作系统、中间件、开发工具的修改与调整。

 

 

3 新架构方案的初步实现与测试分析

基于新架构的方案,在国内已用于机载系统的分区操作系统DeltaSVM基础上,初步实现了容器化的能力。为了对新架构的特性进行验证,采用了对比测试的方法将以下几种架构软件在同样的硬件环境下进行了主要功能的性能测试。

(1) 基于ARINC653标准分区操作系统的软件架构,采用DeltaSVM分区操作系统;

(2) 基于硬件实时虚拟机技术的软件架构,采用支持实时虚拟机技术的道系统8平台,其实时虚拟机内运行的也是DeltaSVM操作系统;

(3) 基于容器化机载软件新架构,采用容器化改造后的DeltaSVMC操作系统。

对比测试的硬件选择支持硬件虚拟化技术(Intel virtualization technologyIntel VT/VTd)的Intel i52500k处理器(4核,基础频率3.3 GHz,关闭自动频技术),内存4 GB DDR31333。所有软件均映像加载到内存中的运行方式。

测试中断响应时间和分区切换时间这两个关键的性能数据[15],对于基于容器技术的DeltaSVMC测试了容器切换时间,对于基于硬虚拟化的道系统8测试了虚拟机切换时间。另外对各自占用的系统内存资源进行了检查,通过测试与检查得到的数据见1

 1 不同软件架构关键操作性能测试结果 ( )

Tab.1 Key operation performance test result for each software architecture ( )

比较项

基于标准分区操作系统

基于硬件实时虚拟机

基于容器分区操作系统

中断响应时间(平均)

0.93

7.95

1.23

中断响应时间(最大)

2.56

22.58

8.91

分区切换时间(平均)

1.23

8.53

1.88

分区切换时间(最大)

3.53

28.21

9.37

虚拟机切换时间(平均)

10.33

虚拟机切换时间(最大)

32.98

容器切换时间(平均)

6.53

容器切换时间(最大)

12.35

根据1中的数据,可以看到使用容器技术后,中断响应平均时间、分区切换平均时间与标准的分区操作系统上的性能比较接近(不到2倍),但最大值略高(3~4倍),由于容器化实现只是初步完成尚有优化的余地。相比采用实时虚拟机技术,采用容器技术的性能要好很多(2倍以上)。从虚拟机的切换时间和容器的切换时间上来看,也基本符合这个规律。这说明采用容器技术的新架构比采用硬虚拟机技术的架构在性能上要好很多,与之前标准的嵌入式分区操作系统架构下的性能相差不是很大。

2的数据可以看到,采用容器化技术后对存储空间的消耗增加了约50%,而采用硬虚拟机技术的软件系统比标准的分区操作系统架构下增加了300%~600%。说明采用容器技术的存储资源消耗要远小于采用硬虚拟机技术。

 2 不同软件架构存储空间占用情况对比表 ( )

Tab.2 Memory space using for each software architecture ( )

比较项

基于标准分区操作系统

基于硬件实时虚拟机

基于容器分区操作系统

所有程序映像合计尺寸

1 256

8 238

1 886

总体内存消耗尺寸

3 193

12 739

4 683

通过初步实现的容器化机载软件架构的测试对比,可以看到容器化技术对处理器资源和存储资源消耗上比当前采用分区操作系统架构增加不大,远好于采用硬虚拟机技术,适合作为航空机载设备软件架构未来发展的方向。

 

 

4  

本文提出的航空机载设备软件新架构可以满足未来航空机载软件的架构需求,相对于当前的第三代机载软件架构具有以下几方面优点:

(1) 大幅提升硬件资源与能力的利用率。当前机载软件平台为了确定性采用了完全静态配置,所有分区及其应用软件的资源都是静态配置好的,因此即便硬件有大量多余的资源也无法利用起来。基于容器技术后,容器内去保证资源的确定性,应用软件仍然可以采用静态配置,但容器本身可以根据硬件的资源与能力进行尽可能多的实例化,充分利用资源。

(2) 支持更为复杂的系统综合设计与配置。当前机载系统中所有的应用都需要在设计时明确其资源,并且必须考虑使用系统公共资源时的竞争与冲突。当应用与分区数量增加时,系统设计与配置的难度接近几何级的增大。基于容器技术后,可以设计专门的容器类型在设计和调试时自动的探测应用的资源消耗,结合开发工具可以自动的生成对应的配置数据。另外,由于相关的分区可以放在一个容器内,容器之间实现了资源的隔离,在系统设计与配置时可以极大地降低对应用间的资源竞争的考虑。

(3) 大幅降低系统软件可重构性的实现难度。当前机载软件平台支持静态配置好的重构行为,但所有的分区必须是已经加载到系统中,并且只能按照之前静态配好的多个调度表进行切换。这种方式很不灵活,系统只能针对很少的一些假设情况进行重构[16]。基于容器技术后,容器内的资源可以控制和回收,只要满足资源需要,就可以很方便地重启容器或更换容器内的所有应用,可以实现既有资源确定性,又有根据实际情况灵活处理的动态重构能力。

 

 

参考文献

1

ZHEN Ziyang, ZHANG Zhibing, ZHANG Junhong. Guidance and control techniques of carrierbased aircraft for automatic carrier landing[J]. Transactions of Nanjing University of Aeronautics and Astronautics, 2017, 34(6): 600608.

2

KUMAR B A, JIANG Ju, ZHEN ZiyangQuadcopter UAV modeling and automatic flight control design[J]. Transactions of Nanjing University of Aeronautics and Astronautics, 2017, 34(6): 627636.

3

李兆雁.分布式航空电子系统通用开放式软件架构的探究[J].军民两用技术与产品,2015(12): 28.

LI Zhaoyan. Distributed avionic general open software architecture research[J]. Dualuse Technology and Goods2015(12): 28.

4

韩正伟.无人机飞控软件架构设计初探[J].电子测试,2018(23): 3738.

HAN Zhengwei. Design of UAV flight control software architecture[J]. Electronic Test, 2018(23): 3738.

5

张勇.飞行器管理系统需求[J].飞机设计, 2011, 31(1): 7176.

ZHANG Yong. Vehicle management system requirements[J]. Aircraft Design, 2011, 31(1): 7176.

6

AEEC. ARINC 653 P01 Avionics application software standard interface Part 0—Overview of ARINC 653[S]. USASAEITC 2015.

7

陈宗基,张汝麟,张平,等飞行器控制面临的机遇与挑战[J]. 自动化学报, 2013, 39(6) 703710.

CHEN Zongji, ZHANG Rulin, ZHANG Ping, et al. Flight control: Challenges and opportunities[J]. Acta Automatica Sinica,2013, 39(6) 703710.

8

朱训辉,宋彦,王焕瑾多旋翼无人机飞行控制自动调参技术[J] . 南京航空航天大学学报,201749(2): 239244.

ZHU Xunhui, SONG Yanguo, WANG Huanjin. Research on the automatic parameter tuning technology of multirotor UAV flight control[J]. Journal of Nanjing University of Aeronautics & Astronautics ,2017, 49(2): 239244.

9

穆培培,张文叶,徐学淼嵌入式系统虚拟化技术研究[C]//全国抗恶劣环境计算机第二十四届学术年会论文集九江:中国计算机学会,2014 4958.

10

企业网D1Net. 从容器和Kubernetes技术看现代云计算的发展轨迹[EB/OL]. 20150119[20190507].http://www.d1net.com/cloud/tech/329878.html.

11

武志学云计算导论:概念架构与应用[M]. 北京:人民邮电出版社,2016.

12

陆悠,杜鹏程,吴帅,等面向多用户环境的弹性云缓存系统研究与实现[J] . 南京航空航天大学学报,201749(6): 883891.

LU You, DU Pengcheng, WU Shuai, et al. Research and implementation of elastic cloud –base buffer management system for multiuser environment[J]. Journal of Nanjing University of Aeronautics & Astronautics ,2017, 49(6): 883891.

13

汪恺,张功萱,周秀敏基于容器虚拟化技术研究[J]. 计算机技术与发展,20158): 138141.

WANG Kai, ZHANG Gongxuan, ZHOU Xiumin. Research on virtualization technology based on container[J]. Computer Technology and Development, 20158): 138141.

14

屠晓杰航空电子云的设计与性能分析关键技术研究[D]. 北京:北京航空航天大学,2013.

15

李铮面向航空电子云计算的异构通信关键技术研究[D]. 北京:北京航空航天大学,2015.

16

赵光多核处理器在综合模块化航空电子系统中的应用[J]. 科技视界,201613): 140,148.

ZHAO Guang. Application of multicore processor in IMA[J]Science & Technology Vision201613:140,148.

首页    我司总工程师与一飞院副总师联合在国家级刊物发表学术文章