2024年2月3日发(作者:)

基于分时分区操作系统软件架构的应用

郑智健;赵刚;孙战;薛建彬;郭燕波

【摘 要】火控系统在多年的不断发展中渐渐暴露出了开发和维修成本高的弊端,提出通过将分时分区操作系统运用到火控系统中,采用航空领域综合化模块化(IMA)体系的设计方案,按照功能来将软件进行划分,采取通用以及专用的软件模块进行配置,实现系统和子系统任务功能,使其能够实现综合化模块化及应用软件构件化的思路,对极大的降低火控系统今后的开发和维修成本有十分重要的意义.%Fire-control

system exposed gradually its disadvantages of for development and

maintenance in the years of fire-control system,applying

time-sharing and partition system,and if it is used the IMA system in the

fire control system,dividing the software on the function and configuring

through general and dedicated software,the function of system and

subsystem can be realized,will realize integrating,modular and

application,and have much point in reducing the cost of fire-control

system's development and maintence in the future.

【期刊名称】《火力与指挥控制》

【年(卷),期】2018(043)003

【总页数】4页(P69-72)

【关键词】分时分区操作系统;软件IMA

【作 者】郑智健;赵刚;孙战;薛建彬;郭燕波

【作者单位】北方自动控制技术研究所,太原030006;北方自动控制技术研究所,太原030006;北方自动控制技术研究所,太原030006;北方自动控制技术研究所,太原030006;北方自动控制技术研究所,太原030006

【正文语种】中 文

【中图分类】TJ811

0 引言

近年来,航空领域综合化模块化(IMA)电子系统发展较为迅猛,综合化模块化航空电子系统的主要特点是使用了许多现场可更换模块来完成各种射频部分、信号处理和信息处理功能,这种模块化的设计便于系统容错和系统重构,并且为同类模块的大量生产降低了成本。应用了IMA体系的的航空电子系统在安全可靠、应用软件构件化、降低开发和维修成本上的优势较之前的系统均得到了明显的提升[1-2]。

由于火控系统的研制和服役时间长,而组件的服役时间越来越短,软件的可扩展性越来越重要。如果能在火控系统中采用IMA体系的设计方案,将软件按功能进行划分,采用通用和专用的软件模块配置,实现系统和子系统任务功能,那将为软件的扩展提供巨大的方便,并且综合化模块化的设计可以有效地避免应用软件的多次重复开发。

本文提出通过将分时分区操作系统运用到火控系统中,使其能够实现综合化模块化的体系结构的思路,对极大地降低火控系统今后的开发和维修成本和实现火控应用软件构件化有十分重要的意义。

1 基于分时分区操作系统的火控系统软件架构

基于分时分区操作系统的软件架构为纵向分层和横向分区。纵向上分为应用层、

APOS层、分区操作系统层,横向上分为各个不同的分区。通用处理单元作为整个火控系统的信息中枢,响应系统内各模块的输入输出,通用处理单元运行多个功能应用,并且一个或多个功能应用划分对应一个分区;每个分区具有自己独立的应用环境,由数据、上下文关系、配置属性等组成。每个分区独立加载各自的分区操作系统及各自的应用,分区之间互不影响,独立运行,分区的运行要满足时间和空间的要求。通用处理单元基于分时分区操作系统的软件架构如图1所示,分区之间有保护墙隔离,实际实现中通过内存管理单元(MMU)保证空间分区的空间隔离,通过严格的时间片轮转方法完成时间分区调度,在分区内可以实现优先级调度或者轮转调度策略[3-5]。

图1 基于分时分区操作系统的火控系统软件架构

分区内的调度主要由一个用来管理上层应用和分区操作系统的应用管理接口软件(AM)来完成,AM通过通用管理模块(GSM)来获取分区内各个应用的故障、上下电、时间等信息来指导各个分区的系统重构、分区资源的利用,从而有效地提高了整个火控系统的可靠性。

同时在分区运行支撑层中定义了一个分区操作系统的接口(APOS),用户编写应用需要面对的只是APOS,这样减少了分区操作系统对应用的影响。而CoreOS直接对分区操作系统提供相应的服务支持,而不直接面对应用,从而解耦应用与操作系统间的依赖[6-9]。

分区内通信主要包括黑板、信号量、消息队列、事件。黑板是一种进程之间的通信方式,对黑板来说,消息排队是不允许的,任何写到黑板的消息将一直保持到被清除或者被新的消息覆盖。信号量机制用于进程间同步和互斥。消息队列是一种进程间通信的方式。在消息队列中,每个消息都带有唯一的数据,因此,传输不允许覆盖,允许消息队列存储多个消息。事件是一种通信机制,该机制允许通知等待某条件的进程条件的发生。

分区间通信主要负责分区之间的数据交换,通过虚拟网卡给各个分区分配IP和端口号,分区之间通过Socket建立通信。

KBSP位于硬件和嵌入式分时分区操作系统内核间,是针对特定目标板完成目标板硬件的初始化,使其达到可执行状态。典型的,KBSP不包括过多的设备驱动,仅包括必需的如:定时、中断等驱动。更多设备一般映射到相应的分区,由分区运行环境支撑层初始化。

2 基于两级调度的分区调度策略

2.1 区调度策略

分区调度采用基于全局调度器和分区调度器的两级调度策略,全局调度器处于操作系统的内核中,实际运行时,操作系统内核应首先检查分区调度时间表,以确定哪个分区将被调度,初始化运行环境,如时间片定时计数器的初始化等,然后,操作系统内核把处理器使用权交给该分区,使分区在所分配的时间片调度各应用程序。该策略对系统资源的竞争范围进行分割,使系统资源竞争只在各个子系统范围内存在,这样可以有效限制多个系统功能之间的相互干扰。在该模型中,分区就是一个时间隔离保护区,把所有任务的运行时间划分为多个时间片,分配给各个分区,每个时间片内可运行一个或多个任务。在每个时间隔离保护区结束时,处理器被强制转交给下一个时间隔离保护区中的任务。实现时间隔离保护区的关键在于处理器处理能力的强制转交,即时间隔离区的划分及调度,以及隔离分区内任务的有效调度。

图2 分区两级调度结构图

2.1.1 全局调度器

全局调度器为区间的调度规定了一种基于时间窗的循环调度算法,调度算法原理图如图3所示。在基于分时分区操作系统的软件架构中,全局调度器基于时间窗循环调度各分区。CoreOS层通过一张已经确定的时间配置表,各分区在其对应的时间窗口内被激活,而时间窗一过,处理器使用权便被强制转交,从而保证每个分区

在分配给它的时间片内,分区内的各个任务不被打断的访问共享资源。因此,分区调度的关键是保证系统实时性,而保证实时性的关键则在于确定主时间框架和各分区时间片[10]。

图3 分区调度原理图

假设按照安全等级及功能的不同将一个处理器模块划分为m个分区,每个分区称为一个任务子系统Ak,一个分区内含有一个局部调度器Sk负责调度该分区内的所有任务。各个分区内的局部调度器共同分享处理器的资源。另假设子系统Ak中共包含n 个任务 1,2,…,n,通过一个 3 元组 <Ci,Di,Ti>来表示任务 i,其中,Ti是任务 i的周期,Ci为任务 i的最坏执行时间,Di为任务 i的死限(deadline),且满足 Ci≤Di≤Ti。

假定处理器的总的处理速率是1,局部调度器Sk的处理速率与处理器的总处理速率的比值称为调度器的服务能力αk。即αk表示局部调度器Sk占用处理器的总处理速率的比例,因此,0<αk≤l。假设分区操作系统以周期ηk周期性地调度局部调度器Sk,则局部调度器在一个周期内可以有αk*ηk个时间单元来调度分区内的各个任务,并且有(1-ηk)*αk个时间单元是阻塞的状态,分区的任务调度模型如图4所示。

图4 分区任务调度模型

当局部调度器Sk使用RMS算法调度分区的各个任务时,假定Sk内的n个实时任务以优先级高低的排序为当子系统Ak中的n个任务当 t0=0 时刻被初始化时,则在[0,t](t>0)内,比任务i的优先级高或相等的任务所要求的最坏累积时间为

Lehoczky已经证明了在时间段[0,t]内,可以调度子系统Ak中的任务i的条件是W(it)≤t成立。

现在假设子系统Ak中的n个任务是在处理器能力值为αk的专用处理器上被调度而不是在能力为αk的局部调度器Sk中被调度。由于0<αk≤l,相对于处理器能力为1的处理器而言,所有任务的计算时间将变为Ci/αk。根据Lehoczky在文献中的充要调度条件可以得出,若理器能力为αk的专用处理器调度能够调度子系统Ak内的n个任务 1,2,…,n,则存在时间

式中Wi(αk,t)表示在时间段[0,t]内且处理器的能力为αk时,优先级不小于 i的任务所要求的最坏累积处理器时间。定义

由上述定义可以得出,当任务 i处于可调度状态时,Bi(αk)表示在时间段[0,Di]内处理器没有运行任何优先级不小于 i的任务的时间,在此称Bi(αk)为时间段[0,Di]内的i级非活动周期,同时称B0(αk)为子系统Ak中的最小非活动周期。文献[5]已经证明了定理1:

定理1在基于两级结构化调度模型的安全关键实时操作系统中,子系统Ak可被周期为ηk、服务器能力为αk的子系统服务器Sk调度的条件为:

不等式ηk-ηkαk≤B0(αk),即ηk≤B0(αk)/(1-αk)成立。

2.1.2 局部调度器

局部调度器根据各自分区内运行任务的特点,采用时间片轮转或优先级抢占的策略来调度分区内的任务[11-12]。时间片轮转调度是一种简单、公平的调度算法。每个任务被分配一个时间段,称作它的时间片,即该任务允许运行的时间,调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾;优先级抢占是指在任务建立的同时为每个任务赋予一个固定优先级,然后再根据任务优先级大小顺序调度任务运行,高优先级的任务抢占低优先级的任务。

2.2 保证系统强实时性的技术手段

对于火控系统这种强实时系统,强调每个任务必须能够在规定的截止时限内完成相应的动作,因此,在上述的基于全局调度器和局部调度器的两级调度策略中,调度算法的选择是保证系统实时性的关键[13]。

Liu和Layland在经典论文《Scheduling Algorithm for Multiprogramming in

a Hard Real Time Environment》中开创了实时调度研究领域的新时代,文中提出的速率单调调度(Rate Monotonic Scheduling,RMS)被证明是最优静态实时调度。在此之后,静态实时调度研究领域的大量工作均以改进RMS为主。

根据安全等级和功能合理地将任务分区,在全局调度器中采用上述算法,文献[4]中该算法已被证明能较好地满足系统实时性的要求,同时在对于具有强实时性应用的分区内采用优先级抢占的调度策略来保证实时任务的充分运行,从而保证系统的实时性满足火控系统的要求。

3 基于分时分区操作系统的软件架构的优势

该系统较传统系统可以实现以下功能优势:

1)在软件架构上,基于分时分区操作系统的软件架构使所有业务集中于同一设备;

2)基于分时分区操作系统的软件架构的应用标准接口,解决了应用软件与操作系统的耦合,便于分布式异构化的软件编程与移植;

3)应用软件分时分区调度策略改变了传统的基于单一操作系统的设计思想,可以实现对应用的隔离,实现各单位软件研制的独立性。

4 结论

基于分时分区操作系统的软件架构在火控系统中的应用将在多方面体现优势,不仅极大地缩短了火控系统的研发周期,而且在可靠性方面,由于增加了健康监控和故障恢复的功能,也将得到极大的提高,同时,上层应用和操作系统之间的标准接口的设计提高了软件的复用性,减少了软件人员的工作量。随着分时分区操作系统的进一步发展,综合化模块化的思路必将在火控系统中得到应用。

参考文献:

[1]郑宗汉.实时系统软件基础[M].北京:清华大学出版社,2003:1-7.

[2]刘琳.基于分层调度的实时系统容错技术研究[D].长沙:湖南大学,2013.

[3]罗威,阳富民,庞丽萍,等.基于延迟主动副版本的分布式实时容错调度算法[J].计算机研究与发展,2007,44(3):521-528.

[4]李昕颖,顾健,何峰,等.硬实时系统在强分区约束下的双层分区调度[J].计算机学报,2010,33(6):1032-1039.

[5]杨仕平.分布式任务关键实时系统的防危(safety)技术研究[D].成都:电子科技大学,2004.

[6]王和平,王宁,张联梅.综合航电开放式软件设计技术[J].计算机工程与设计,2009,30(1):4-8.

[7]冯庆.嵌入式软件面向行业应用编程中间件技术的研究和实现[D].成都:电子科技大学,2005.

[8]袁勋,卿斯汉.安全操作系统的标识鉴别机制研究与实现[J].计算机科学,2001,28(7):120-122.

[9]晏婧.云环境下基于约束的工作流任务调度算法研究与实现[D].重庆:重庆大学,2011.

[10]DENG Z,LIU J ling real-time applications in an open

environment[J].Proceedings of the IEEE Real Time Systems Symposium,1997:308-319.

[11]段进峰,彭靖波,谢寿生,等.航空发动机分布式系统解耦控制研究[J].火力与指挥控制,2017,42(5):37-41.

[12]徐晓光,叶宏.分区间通信在航空电子系统中的设计与实现[J].航空计算技术,2005,35(1):45-46.

[13]施巍松.软件分布式共享存储系统的性能优化[M].北京:高等教育出版社,2004.