航天器嵌入式操作系统研究与设计
2011-11-27乔磊,彭飞,赵玮,孙越,杨桦,刘波
乔 磊,彭 飞,赵 玮,孙 越,杨 桦,刘 波
(北京控制工程研究所,北京100190)
航天器嵌入式操作系统研究与设计
乔 磊,彭 飞,赵 玮,孙 越,杨 桦,刘 波
(北京控制工程研究所,北京100190)
随着航天器结构和功能的复杂化,对作为系统资源管理者的操作系统的功能和可靠性等要求也日益增强.分析嵌入式实时操作系统在国内外航天领域的研究与应用现状,提出面向航天器应用特点的具有多任务管理、内存管理、文件系统、容错和故障管理等功能的高可靠、高性能的嵌入式实时操作系统的研究与设计方案,并展望其在未来网络化及分布式安全航天器中的发展前景.
航天器;实时操作系统
随着人类对月球探测、火星探测的开展,将面临距离地球遥远,空间环境复杂等难题,对进行空间探测的飞行器提出了更高要求,航天器需具有更复杂的硬件结构和更强的控制功能和容错处理能力.对于对各种硬件资源进行管理的软件的要求同样要有本质上的提升.实时嵌入式操作系统[1](RTOS,real-time operating system)作为能够有效管理计算机和控制系统的软件必将成为更复杂航天器的选择.
使用实时操作系统的优点是:资源利用率较高,多任务提高了CPU、I/O等部件的利用率,程序开发效率高.应用程序使用实时操作系统提供的系统调用,不直接处理硬件,硬件对应用程序透明.软件可移植性强,硬件设计的修改只影响到RTOS的硬件抽象层,不需要修改RTOS的内核和应用软件.提高可靠性,应用软件划分为多个自主的任务,便于调试和仿真.便于软件扩充,能够更有效地利用硬件的功能.
目前有许多流行的RTOS商用产品得到了广泛的应用.此外还有许多免费开放源代码的RTOS可供选择.其中一些已成功用在空间探测领域.
1 国内外研究及应用现状
1.1 国外情况
国外在空间探测领域应用的商用实时操作系统产品主要包括Vx Works[3],QNX[4]以及pSO System[5].
Wind River公司的实时操作系统Vx Works是商用实时操作系统中的佼佼者,已在航天航空界得到了广泛的使用.在国际空间站、火星探路者、航天飞机等高精尖的重大航天项目中得到应用.QNX是少数的适合实时应用程序的多处理器操作系统之一,航天应用有国际空间站太阳能帆板等.对开源操作系统的研究主要集中在针对Linux的实时化扩展和OAR公司负责的RTEMS[6].RTEMS已应用于欧洲航天局(ESA)的空间探测项目中.
虽然上述操作系统经过多年发展已被应用在一些空间探测任务中,但是基于国内航天领域的现状,现有的实时操作系统并不完全适合我国的空间探测航天器的应用.主要体现在:
1)商用实时操作系统源代码不公开,不能进行功能的扩展,限制了其在特定环境的应用.
2)现有的实时操作系统设计的目的是可应用于各种实时应用领域,优先考虑性能和兼容性,对空间应用的容错能力和可靠性需求考虑不足.
3)现有的实时操作系统在航天器的存储空间非常有限的条件下,无法同时满足功能、性能和存储空间需求.
4)现有实时操作系统开发环境其内部集成工具输出结果的可信性无法满足空间应用产品的要求.
5)现有实时操作系统测试工具无法满足嵌入式系统特有的测试需求;对多处理器,多机并行,多机备份的模拟和测试的支持不足.
1.2 国内情况
国内的研究也分为商用实时操作系统产品应用和自主研发操作系统.中国科学院沈阳自动化研究所基于商用实时操作系统QNX,开发了开放式自主移动机器人控制系统.某通信卫星数管容错计算机上应用了开放源代码的实时操作系统RTEMS.国内部分航天器研制单位面向应用环境,为了满足实际的应用需求,对实时操作系统进行了研发的尝试,自主研发了几种实时操作系统的原型产品.其中,实时操作系统Space OS[6]具有任务管理、中断管理、时间片管理、系统服务、陷阱管理等功能能很好完成现有型号任务.另外,在X86平台下以汇编语言开发的软件调度管理软件具有实时操作系统的基本特征,部分实现了总线冗余管理、设备容错等功能.
但由于国内对实时操作系统的研究处于初步阶段,研究时间较短,技术基础相对薄弱,所有这些操作系统产品普遍存在以下问题:
1)内核只实现了RTOS的最基本功能;
2)对空间应用有所考虑,但对特殊需求(如容错、故障诊断等功能)的设计严重不足;
3)均为对单一项目进行的定制设计,可移植性不佳;
4)没有可选择的组件模块,可扩展性差;
这些产品与国外的实时操作系统相比,无论是从功能、性能、可扩展性还是可用性上都存在着极大差距.更是无法满足复杂空间探测任务的航天器实时操作系统的高可靠、高安全性、空间网络化、长期自主运行等要求.
综上,现有RTOS还不能够完全满足复杂空间探测应用的需求,需要在已有RTOS的基础上,自主研发出满足下列需求的适合空间探测应用RTOS:
a.满足高效的资源管理要求.能够对航天器的各种资源进行有效的管理,并保证资源管理的正确性、可靠性、灵活性、可剪裁性、可移植性.
b.满足强实时性、高可靠性和高安全性的要求.系统能够快速响应,在出现异常和故障时保证系统健壮性.
c.满足通用性的要求.能够经过少量配置后移植到相同体系结构的其他航天器使用.
d.满足自主性要求.支持自主的计算机资源配置与管理,以适应硬件资源发生变化后的要求;支持故障的自主诊断和恢复,增强系统的故障生存能力;
e.满足复杂的网络化航天器任务需求.能够通过多个空间节点进行大量复杂的空间计算和控制.
2 航天器RTOS研究与设计
为了满足上述空间探测航天器的复杂控制和计算任务,本文设计并实现了一个航天器嵌入式操作系统,总体设计方案如下所述.
2.1 总体研究与设计方案
首先对航天器的硬件平台,包括处理器的体系结构、硬件冗余容错结构,各种外围设备资源的特点进行分析,在此基础上对硬件资源进行软件抽象,如图1所示,将CPU抽象成任务,将内存抽象成内存管理器,将存储器抽象成文件系统等,基于这些对象设计各种功能和机制,实现任务管理、内存管理、文件管理、任务间通讯等功能.
然后对其它外部设备资源进行管理,统一到设备驱动程序模块,在内核和设备驱动管理的基础上进行容错和故障管理.
最后所有这些模块形成航天器操作系统,对上层应用提供一个封装的系统服务接口,用户程序通过这些接口访问资源.
图1 总体方案
2.2 操作系统核心机制设计
作为最重要功能部件的操作系统内核部分,包括任务管理,任务间通讯机制,内存管理,中断管理,文件系统等.各部分设计如下:
2.2.1 任务管理
定义1.任务可执行程序(操作的集合,程序执行所需要的相关数据,程序执行的上下文环境(系统资源的抽象).
定义2.任务状态归纳为五种,即起始或终止,睡眠,就绪,运行,阻塞,具体描述如下:
定义3.起始或终止态指任务驻留在程序空间中,还没有交由操作系统管理,此时任务只是以静态代码和数据的形式存在.
定义4.就绪态当任务一旦建立,就进入就绪态.当该任务执行完毕或者被指定终止,则再次进入休眠态.任务被创建或者任务被解除阻塞、运行时被更高优先级的任务抢占就进入就绪态.
定义5.运行态任务在执行时就处于运行态,是由调度程序从就绪表中选择优先级最高的任务执行.
定义6.阻塞态任务已被释放但是还没有运行完毕时,如果由于等待所需信号量使执行无法继续下去,或者任务主动挂起,就进入阻塞态.
定义7.睡眠态任务被延时一段时间后将进入该状态.
任务间通讯采用信号量和消息队列机制.
状态转换的逻辑关系如图2所示.
图2 任务状态模型转换图
2.2.2 内存管理
内存管理研究方案包括内存空间的组织方法、内存空间的分配与回收方法.
在过去的40年中,人们已经对动态内存管理进了深入的研究.这些研究主要集中于用户态的动态内存管理.W ilson,Johnstone,Neely,Boles[7]所写的综述中对这些工作做了很好的总结.但由于页面内存管理器的特殊性,不是所有的算法都适合于进行页面管理.应用于页面管理器比较常见的算法有伙伴算法、资源映射图法、空闲链表法等.
空闲链表法是最为简单的内存管理算法,其优点是具有很高的运行效率.链表操作存在高效Lock-Free的算法,可以提高系统的实时性;缺点是最大能分配的连续物理仅为一个页面.使用该算法的操作系统,如W indows CE,通过虚存页面管理器将离散的物理页面重新映射为连续的内存区,运行开销较大且需要MMU的支持.
伙伴算法,通常指双伙伴系统,是一种带有合并空闲块技术的2次幂算法分配方法.伙伴系统非常适合合并空闲块,适合作为页面级管理器.其缺点是每释放一次内存块,分配器都尽可能进行合并操作.当分配与释放交替进行时,该算法可能引起震荡现象,在最坏情况下性能较差.所能分配的内存块越大,该现象越明显.Linux包括各种实时化的Linux都是以伙伴算法作为物理页面管理器的.
为克服简单伙伴算法的性能问题,在SVR4中提出了Lazy伙伴算法.其思想是延缓合并的发生,直到有必要时才尽可能的合并内存块.这种方法虽然可以减少平均分配和释放的时间,但会使少数几个引起合并的操作非常的慢,这一点是实时系统所不能接受的.
资源映射图法使用一系列的二元组{基地址,长度}来管理空闲内存.它也是一种简单的分配器,并可以高效的实现.Linux使用该算法管理虚存空间.该算法在搜索内存块时进行线性搜索,导致分配时间不具备确定性;在进行合并时,该问题同样存在使得其运行开销过大.RTEMS使用一种改进的资源映射图算法.它为内存块的回收进行了优化,将控制信息存放在内存块的首部并组织为链表.该算法能够以O(1)级的时间内实现了内存块回收并完成空闲块的合并,但在分配时仍然需要线性搜索.
自主研发的操作系统内存空间分配方法在内存空间组织方法的基础上进行内存分配方法的设计,使用首次适应策略并采用新颖的基于两级位图的多级队列结构提高分配方法的性能.内存空间回收方法同样采用基于两级位图的多级队列结构进行内存空间的回收,使得回收能够达到确定的时间.
2.2.3 文件系统
空间探测的特点中包括大量空间数据的收集和存储,FLASH大容量存储设备将会被大量使用.这就需要对其进行有效管理的基于FLASH大容量存储设备的文件系统.文件系统旨在将大量的空间图像数据、系统收集的各种关键数据等以文件的形式存储在FLASH设备上,达到断电不丢失、高效传输与访问的目的.对上层应用程序而言,底层的屋里FLASH设备是透明的,应用只需调用文件系统提供的API(如open,read,write等)进行数据的存取.在文件系统内部,采用分层和模块化管理策略,即包括逻辑文件系统层,物理文件系统层以及负载均衡和垃圾收集模块.
逻辑文件系统层将整个存储空间抽象成一个连续的页空间,负责对逻辑空间的分配、回收、移动等操作.物理文件系统层负责将逻辑页映射到物理页上,在它们之间存在一个逻辑-物理空间映射表.该表会随着系统的运行动态的改变,所以在上电时将其保存在内存中,并且定期修改到FLASH上.
航天器操作系统的文件系统结构类似JFFS[2]结构,如图3所示,包括五个模块:文件系统接口,逻辑空间管理,物理空间管理,负载均衡,垃圾收集.
图3 文件系统构成
2.2.4 设备管理
设备管理包括各种外设的驱动程序设计,典型的外设如串口、并口、CAN、FLASH、各种IO设备等.
设备管理模块将各种设备按各自特点进行分类,对于同类的设备进行类似的设备驱动设计,提供类似的操作和接口.
2.2.5 容错处理和故障诊断
现有的实时操作系统不能直接支持冗余容错结构处理.目前航天器型号中实现的容错功能,均是在应用层以任务方式实现,其缺点在于对应用软件不透明、容错管理能力弱、执行效率低.另一方面,随着实时系统硬件自身可靠性及其保障技术日趋成熟,实时软件缺陷和错误就成为导致实时系统失效的主要原因.因而,迫切需要研制航天器嵌入式实时操作系统,对冗余容错结构、软件容错等进行有效支持,全面增强容错能力,并提高容错处理的效率和易用性.
目前,航天器为获得满足长寿命、高可靠、抗辐照要求,普遍采用各类冗余容错结构,包括:双机热备、三机容错,以提高系统可靠性,而现有的实时操作系统不能直接支持容错处理.本文拟在操作系统级提供冗余容错支持,在操作系统中,增加系统自检(CPU自检、内存自检、I/O自检)、多机同步控制、投票表决,实现对型号系统的全面冗余容错支持.系统模块划分如下图:
内核支持单一映像和系统资源全局管理的多处理器、多目标机结构体系下的分布式冗余容错处理,实现以下能力:
a.实现为每个单机节点分配并初始化发送及接收数据缓冲区的功能;
图4 容错系统模块划分
b.实现多机间(三机或双机双机热模式)数据交换的功能;
c.实现多机间(三机模式)同步控制的功能;
d.实现数据比对(双机热模式)或投票表决(三机模式)的功能;
e.实现依据数据判断结果进行自主并机或切机的功能;
在故障诊断方面,航天器处于人类未知的空间环境之中,需要长时间航行,这要求航天器具有高可靠性和长寿命;在长时间的空间航行中,信息传输距离遥远,信息传输可靠性变差,人对航天器的控制能力减弱,这要求航天器在很大程度上具有自主性,能够在发生故障的情况下进行自主诊断和修复故障.为了满足这些任务对航天器可靠性、长寿命和自主性的要求,在航天器设计过程需要采用各种故障检测、故障屏蔽和故障修复方法.而在航天器软件设计中采用故障诊断方法不仅能够降低硬件的复杂度、提高设计的灵活,而且能够减小整个航天器的重量和功耗,更好地满足长时间、远距离航行的要求.
自主诊断与恢复是现有嵌入式实时操作系统所不具备的功能,但这却是卫星型号能够长期、稳定运行的基础,在该模块中提供自主诊断和处理支持,使嵌入式实时操作系统具备以下功能:1)能够快速的发现故障现象并收集状态信息;2)能够准确的确认故障源;3)能够自主的进行处理或屏蔽故障.
为了实现上述目标,在OS中增加故障诊断功能模块,负责实时监控各种设备资源的运行情况,定期采集它们的状态数据,并进行故障分析.故障发生时,能够及时检测到故障,提供故障管理机制,所有的异常处理需由一个统一的故障处理模块进行处理.除默认的故障处理方法外,还提供自定义设置处理方法机制.通过对设备进行大量的反复测试,确定各种设备的正常状态参数,将这些信息存放在数据库中.
图5 容错与故障处理
3 结 论
空间探测航天器控制计算机硬件体系结构在硬件平台上集成了越来越多的高可靠设计,具有更强的能力,而且由于应用的差异,使得不同空间探测器控制系统具有不同的特点.在这种应用背景下,本文提出的新的嵌入式实时操作系统的能力能够得到充分的发挥.尤其是以下几项能力对提高系统的可靠性和开发效率具有很强的促进效果:可移植性、容错管理和故障诊断功能、高效文件系统功能.
网络和分布式的支持将是未来研究的重点,增加对网络设备的支持,进行分层的网络协议栈构建,提供给空间应用透明的网络服务.在高效的总线网络传输基础上进行分布式功能扩展,将任务迁移到其它的航天器的不同计算机节点上,实现实时的多机间任务通讯和任务调度,以达到多机并行分布式计算和控制.扩展后的系统如图6所示.
图6 安全分布式多机航天器操作系统
[1] 杨雅,袁雳,范宇飞.星载计算机实时操作系统研究[C].中国首届嵌入式技术应用交流会,北京,2002.
[2] Mendel R,John K.The design and imple mentaton of a Log-structured file system[J].Acm Transactions on Computer System,1992,10(1):26-52.
[3] Feiertag R J,Neumann P G.The foundation of a Provably Secure Operating System(PSOS)[C].In Proceedings of the National Computer Conferece,AFIPS Press,1979.
[4] Hilde brand D.An Architecture overview of QNX[C].Proceedings of the workshop on m icro-kernels and other kernel architectures,WA,USA,Apr 1992.
[5] Silva C A,Mota H,Inlianello M.RTEMS CENTRE-support and maintenance CENTRE to RTEMS operatiny stystem[M].Data Systems in Aerospace,2007.
[6] 郝海生.星(船)用实时操作系统——资源管理的研究与实现[D].中国空间技术研究院,北京控制工程研究所硕士研究生论文
[7] Paul RW ilson,Mark S Johnstone,Michael Neely et al.Dynamic storage allocation:A survey and critical review[C].International Workshop on Memory Management,Kinross,Scotland,UK,1995
[8] U.Vahalia.Unix Internals:The New Frontiers(2nd)[M].Prentice Hall,2006.
Embedded Operating System Research and Design for Spacecraft
QIAO Lei,YANG Hua,ZHAOWei,SUN Yue,LIU Bo
(Beijing Institute of Control Engineering,Beijing 100190,China)
The structure and function of spacecraft becomes complex,as the system resource manager,the function and reliability requirements of operating system running on spacecraft is strengthened.Based on the analysis of the domestic and foreign state of arts for the real time embedded operating system,a spacecraft-oriented,high-reliability,high-performance embedded operating system which includes the functions of multi-task management,memory management,file system,fault tolerance and management is proposed,as well as the expectation of foreground in the field of network,distributed and secure spacecraft.
spacecraft;real time operating system
V249
A
1674-1579(2011)05-0031-05
10.3969/j.issn.1674-1579.2011.05.006
2011-04-10
乔 磊(1982—),男,江苏人,工程师,研究方向为操作系统设计、存储管理、文件系统(e-mail:qiaolei@mail.ustc.edu.cn).