卫星综合测试系统中多控制台管理技术改进
2012-12-29史志敏温洁李砥擎
史志敏 温洁 李砥擎
(中国空间技术研究院,北京 100094)
1 引言
国外宇航企业在航天器自动化测试领域起步早,技术基础雄厚,经验丰富,已自成体系,并具有相当的规模。自动化测试已完全应用到卫星整星及分系统的测试过程中,并对卫星研制起到了强有力的检验和验证作用。我国由于起步较晚,整星自动化测试技术还处于发展阶段。经过多年的努力,在借鉴国外先进技术的基础上,研制了以总控测试设备(OCOE)为中心的分布式体系结构卫星综合测试系统,逐步形成了通用的卫星综合测试系统[1-3]。目前,卫星综合测试朝着自动化方向发展,并在某些卫星平台的测试中得以应用;通用的自动化测试系统和具备推理能力的卫星测试系统,已逐渐得到应用[4-9]。
目前,卫星综合测试系统中的总控测试设备面临的一个最重要问题,是保证系统长时间、稳定可靠的运行,特别是在长达1个月的热试验期间,需要总控设备一直保持运行状态。然而,目前总控测试设备中采用的总控主测试处理机(MTP)服务器,是基于早期的卫星平台设计的,存在着不完善之处,如对测试序列管理及测试操作控制台(TCC)管理等方面存在缺陷。因此,为满足长时间卫星综合测试的可靠性要求,本文针对总控MTP 服务器中测试操作控制台管理上的技术问题,提出在UNIX 操作系统多进程环境中,利用守护进程收集已终止子进程信息,释放这些进程占用的系统资源,以解决系统资源有效利用问题,优化MTP 服务器对测试操作控制台管理上的设计,提高系统资源的利用率,从而增强MTP的可靠性和稳定性,可为MTP进程管理技术改进提供借鉴。
2 卫星综合测试系统组成
卫星综合测试系统由总控测试设备、专用测试设备(SCOE)、遥测前端测试设备、遥控前端测试设备、数据库服务器及其他设备组成,这些设备通过局域网(LAN)连接起来,如图1所示。总控测试设备是卫星综合测试系统的中心,它主要包括MTP、数据订阅服务器(RTS)、数据监视软件、数据入库服务器(DSS)和测试操作控制台,各测试设备间通信遵循综合测试设备间通信协议。MTP软件是整个总控软件系统的核心[3],实现测试数据处理、遥控指令发送、测试数据测试过程记录回放等功能,负责对整个卫星综合测试系统的监控和管理,其他软件在MTP的统一控制下协调工作,以完成测试任务,并由数据入库服务器将测试结果存储至数据库中。专用测试设备软件可以通过MTP发送测试指令,并从数据订阅服务器获取测试结果。测试控制台软件是MTP软件的客户端,它能够与MTP通信,为测试人员提供可视化操作界面,以对MTP软件进行控制,同时,实现对MTP设置、测试设备的管理,测试指令和测试序列的发送,测试项目的自动实施,测试信息的显示等功能,实现整星的自动化测试。MTP中采用专门的测试操作控制台管理进程,实现对测试操作控制台的管理。
图1 卫星综合测试系统Fig.1 Satellite integration test system
3 多控制台管理技术改进
3.1 UNIX环境下进程控制技术
UNIX 是一个支持多用户、多进程的操作系统。在UNIX 环境中,一个现存的进程通常采用fork函数来创建一个新进程,该新进程被称为子进程,而创建者进程称为父进程。子进程是父进程的副本,并共享父进程的正文区。当系统中已经存在了太多的进程,或者用户的进程总数超出了系统限制时,fork将会失败[10]。UNIX 中的进程逻辑关系,如图2所示。
子进程终止后,如果父进程尚在运行中,需要父进程对其进行善后处理(获取终止子进程的有关信息、释放它仍占用的资源),否则子进程将一直作为僵死进程存在,直至父进程终止。如果父进程先于子进程终止,将由系统内核接管这些子进程,释放终止子进程使用的所有存储器,关闭所有打开文件,并使进程标志符可以重新被利用。因此,如果编写一个长期运行的程序,它调用fork函数产生了很多子进程,那么,除非父进程等待取得子进程的终止状态,否则这些子进程就会变成僵死进程。
在UNIX 环境下开发的基于多进程的测试控制台管理中,由于缺乏对终止进程的管理操作,使大量僵死进程产生,当用户进程总数超出系统限制时,MTP就无法接受新的用户连接。
图2 UNIX 中的进程逻辑关系Fig.2 Process logic relationship in UNIX
3.2 多进程测试控制台管理技术
MTP是一个复杂的系统,集计算机通信、实时控制,以及实时数据处理、分析、回放等功能于一体。其软件是总控系统控制、管理的核心,基于UNIX操作系统开发,采用服务器/客户机架构。该软件采用多进程并行处理方式,即各种管理功能均以采用管理进程的形式实现。MTP 中测试控制台管理进程,实现对测试控制台软件的管理和通信,包括管理与测试操作控制台的数据链路,接收测试操作控制台送来的经过语法检查的控制命令,将控制命令送往控制命令分析进程,将各进程送来的、需显示的信息发送给测试操作控制台。测试控制台管理进程可以管理多个测试操作控制台,负责测试操作控制台信息在网上的广播,可在测试操作控制台上进行人机交互,可以控制或参与测试过程,可在测试操作控制台上显示测试状态,监视参数状态变化、测试序列的执行情况,以及控制命令、遥控指令的执行情况、状态变化及有关操作的信息。
MTP控制台管理进程在实现对多个测试控制台软件管理时,采用了网络服务进程中常见的处理形式,即控制台管理父进程作为守护进程,等待测试操作控制台软件的服务请求。当测试操作控制台服务请求到达时,守护进程调用fork函数,产生一个服务子进程,并由该子进程处理服务请求。守护进程则继续等待下一个服务请求。
多个卫星测试任务的验证表明,MTP控制台管理进程中采用基于守护进程的多进程控制台管理技术,是对测试操作控制台进行成功管理的基础。然而,由于MTP软件中采用了多进程开发的默认形式,即没有对僵死进程进行控制。这种模式的影响在短期测试任务中及对少量的测试控制台管理中表现不明显。但是,随着测试任务长时间持续进行,以及多个测试控制台的登录和退出,会产生大量僵死进程。由于UNIX 系统中对进程数进行了限制,僵死进程占用的大量系统资源无法获得释放,因此,这种模式会导致MTP无法处理新的测试控制台连接请求。为解决在测试过程中MTP软件发生僵死进程问题,本文提出的在UNIX 环境下通过应用进程控制技术,实现守护进程对服务进程状态的管理,能及时收集终止进程占用的系统资源,避免僵死进程出现,实现MTP软件控制台管理技术的改进。
3.3 控制台管理技术改进方法
大量卫星测试任务对MTP服务器提出了长时间稳定运行的要求,本文在基于多进程控制台管理技术的基础上,增加对已终止进程的管理,利用进程控制技术,实现MTP测试控制台管理技术的改进,具体改进方法如图3所示。
图3 控制台管理中的进程控制Fig.3 Process control in managing test conductor console
MTP软件控制台管理进程作为守护进程,当有新的测试操作控制台客户端连接请求到达时,守护进程首先对连接请求客户端进行登录验证,验证通过后进行校时,然后再通过系统调用fork函数产生一个子进程作为服务进程,负责管理和测试操作控制台客户端的业务逻辑。而守护进程则继续等待下一个连接请求。在服务进程中,总可以感知到测试操作控制台客户端的连接断开,因此,在服务进程中增加测试操作控制台客户端连接断开后的通信异常终止处理逻辑,即当服务进程不能和测试操作控制台客户端通信时,便收集登录测试操作控制台客户端用户信息,然后终止该服务进程。同时,在守护进程中增加进程控制逻辑,以实现对已终止子进程状态的收集。这样,当服务进程终止后,由内核通知父进程进行子进程状态收集,从而使僵死进程占用的系统资源被释放出来。
由于UNIX系统中对系统进程数及用户进程数均进行了限制,这里的进程数是指可维护的进程标志符数,包括处于各种状态的进程。在用户进程数一定的条件下,MTP软件同时可管理的测试操作控制台客户端数也将是受限制的,即MTP服务器中服务进程数量也是固定的,因此,如果MTP中存在大量处于僵死状态的进程,守护进程将不能生成新的服务进程,即新的客户端连接请求不能被MTP控制台管理进程处理。在卫星综合测试任务进行中,特别是在长期的测试过程中,测试人员不可避免地会使用各种测试操作控制台客户端进行连接-断开-再连接MTP的操作。采用上述改进的控制台管理技术,在一个测试操作控制台客户端断开与MTP的连接后,由守护进程及时对已终止的服务进程进行状态收集,将已终止服务进程占有的系统资源释放出来,以供新的测试操作控制台客户端服务进程使用,从而有效地解决了MTP控制台管理问题。
4 结束语
本文针对MTP服务器测试操作控制台管理中存在的僵死进程过多,影响MTP 为综合测试提供长期稳定服务的问题,在基于多进程的控制台管理技术基础上,提出了利用UNIX 环境下的进程控制技术,采用守护进程动态收集已终止服务进程信息的方法,实现对僵死进程的管理,使僵死进程所占用的资源及时获得释放,以供后续的测试操作控制台客户端使用。该方法解决了多进程条件下MTP服务器控制台管理问题,提高了系统资源的利用率,增强了MTP的可靠性和稳定性,为长期的整星测试提供了技术基础。在后续的MTP 优化工作中,参考本文提出的控制台管理改进技术,可对MTP 测试序列管理进程进行改进。
(References)
[1]王庆成,艾晓然.一种通用的卫星综合测试系统研究[C]//中国宇航学会飞行器总体专业委员会2004年学术研讨会论文集.北京:中国宇航学会,2005:1022-1033
Wang Qingcheng,Ai Xiaoran.Research for a kind of universal satellite synthesis test system[C]//Proceedings of the 2004Symposium of Spacecraft System Engineering Committee,Chinese Society of Astronautics.Beijing:Chinese Society of Astronautics,2005:1022-1033(in Chinese)
[2]艾晓然,王庆成.卫星综合测试通用系统研究[C]//第十四届全国测试与故障诊断技术研讨会论文集.北京:中国计算机学会,2005:54-60
Ai Xiaoran,Wang Qingcheng.Research for universal satellite synthesis test system[C]//Proceedings of the 14th Symposium of China Testing&Malfunction Diagnosis Technology.Beijing:China Computer Academic Society,2005:54-60(in Chinese)
[3]毕于莲,孟晓风,王国华.卫星地面测试通用MTP软件设计与实现[J].中国测试技术,2008,34(1):70-73
Bi Yulian,Meng Xiaofeng,Wang Guohua.Design and implementation of general MTP software for satellite ground testing[J].China Measurement Technology,2008,34(1):70-73(in Chinese)
[4]袁媛,戴涧峰.环境减灾-1A、1B 卫星地面综合测试总控系统[J].航天器工程,2009,18(6):118-124
Yuanyuan,Dai Jianfeng.Satellite synthesis test general control system of environment disaster decrease satellite-1A,1B[J].Spacecraft Engineering,2009,18(6):118-124(in Chinese)
[5]葛建云,王建军.自动化测试系统在环境减灾-1A、1B卫星中的应用[J].航天器工程,2010,19(2):121-127
Ge Jianyun,Wang Jianjun.Application of auto test system in HJ-1A/1Bsatellites[J].Spacecraft Engineering,2010,19(2):121-127(in Chinese)
[6]王志勇.构建基于小卫星的自动化综合测试系统[D].西安:西安电子科技大学,2006
Wang Zhiyong.Constructing automatic test system for moonlet[D].Xi’an:Xidian University,2006(in Chinese)
[7]赵瑞峰,董房,陆洋,等.卫星通用自动化测试系统体系结构研究[J].信息技术,2011,35(4):65-68
Zhao Ruifeng,Dong Fang,Lu Yang,et al.Research on architecture of general automatic test system for satellite[J].Information Technology,2011,35 (4):65-68(in Chinese)
[8]冯孝辉,王静,杨海龙.基于知识推理的小卫星综合测试知识库系统架构设计与应用[J].计算机测量与控制,2011,19(4):753-755
Feng Xiaohui,Wang jing,Yang Hailong.Design and application on case-based knowledgebase software for satellite integration testing[J].Computer Measurement&Control,2011,19(4):753-755(in Chinese)
[9]朱新波.卫星综合测试专家系统的开发[D].上海:复旦大学,2005
Zhu Xinbo.Realization of satellite synthesis test expert system[D].Shanghai:Fudan University,2005(in Chinese)
[10]W Richard Stevens Stephen A Rago.UNIX 环境高级编程[M].2版.尤晋元,张亚英,戚正伟,译.北京:人民邮电出版社,2006:313-340
W Richard Stevens Stephen A Rago.Advances programming in the UNIX environment[M].You Jinyuan,Zhang Yaying,Qi Zhengwei,translated.2nd ed.Beijing:Posts&Telecom Press,2006:313-340(in Chinese)