混合关键系统的高效通信技术

2019-11-01 09:10游夏林森
数字技术与应用 2019年7期

游夏 林森

摘要:为了解决混合异构系统的不同关键任务在隔离空间的高效通信访问问题,本文提出了混合关键系统的高效通信技术。通过研究嵌入式轻量级软总线,构建以数据为中心的统一通信模型,实现基于统一接口的高效数据交互,形成混合关键系统的不同种类任务间的高效异构通信能力,支撑混合关键系统的实时性、安全性和异构调度。

关键词:混合异构系统;隔离空间;软总线;异步通信

中图分类号:TP393 文献标识码:A 文章编号:1007-9416(2019)07-0054-02

1 概述

随着信息技术的高速发展,信息系统需要突破单处理节点单应用功能的体制模式限制,在系统中部署多种关键级别程序,实现不同种类的应用程序运行在同一种处理器上。在武器装备平台的控制系统中,需要运行安全关键任务,在任务载荷系统中,需要运行任务关键、一般数据处理任务等等级的应用程序,从而构成了一个更为复杂的混合关键系统MCS[1](mixed-criticality system)。

针对信息系统安全关键领域嵌入式系统的迫切需求,混合关键系统中操作系统迫切需要具备在不同的应用之间进行高效异步通信能力。不同的关键等级应用运行在混合关键系统的不同的安全隔离区域[2],应用之间通信访问需要通过软硬协同机制进行快速切换。普通应用运行在普通世界中是通过虚拟内存映射运行在不同的虚拟内存区域,安全实时应用运行所在的关键应用是基于物理隔离的物理内存区域。

针对在混合关键系统中协作任务,研究任务间通信机制以实现处于不同关键等级的软件数据交换安全高效,支持保障通信服务质量的轻量级通信软总线[3],基于统一模型的嵌入式轻量级软总线设计,针对运行环境资源受限、实时性强等特点,构建以数据为中心的统一通信模型,实现基于统一接口的高效数据交互,形成混合关键系统的高效异构通信能力。

2 混合关键系统的异步通信模型

本文基于国产处理器虚拟隔离出的不同关键等级应用的独立的物理空间,这不同应用之间的通信方式采用共享存储通信模型[4]进行实施。通用计算应用进程和实时应用进程可以通过共享存储区中的数据,按照相互规约好的交互协议,进行读写通信。基于共享存储的通信方式具有传输效率高、数据量大的特点。共享存储采用双端口 RAM,为解决共享内存的读写一致性问题,保护关键应用在共享区的数据安全,通过共享内存隔离单元将共享内存区划分为两个部分,一个部分作为非关键应用的可写区,用于存储非关键应用向关键应用发送的命令与数据;另一部分作为关键应用可写区,该区域对非关键应用只读,可有效防止非关键应用的恶意进程篡改共享内存中的关键应用返回结果。

非关键应用和关键应用之间的中断通知机制可采用阻塞与非阻塞的IPC[5]方式。当非关键应用需要调用关键应用的相关策略决策服务时,决策过程是不可旁路的,通知方式采用阻塞方式,必须等待关键应用的决策返回信号;当非关键应用需要调用多个可并行执行的相关安全服务时,则采用非阻塞的方式,实现双核并行执行,提高多任务处理效率。

非关键应用和关键应用之间的通信协议采用挑战应答的交互方式,共享内存作为双方数据交换区。通常非关键应用作为协议的挑战方,关键应用作为协议的应答方。结合共享内存与 IPC,非关键应用和关键应用之间通信的基本协议如图1所示。

当非关键应用需要向关键应用发起安全服务请求时,首先初始化共享内存的数组指针,分配一块空闲区域,准备发起服务的命令字段与数据段,并写入共享内存的非关键应用可写区区,然后发送IPC中断,最后判断当前的服务请求是否阻塞传输,若是则等待关键应用的返回ACKn和返回结果,若不是,则直接发起下一服务请求。关键应用在收到FIRQ后,首先直接进入中断处理器程序,获取数据总长度,根据实际需要,若数据量大,则采用DMA快速搬移的方式将数据读入安全系统,若数据量小,则直接从共享内存中读取;然后,根据命令字段调用相应的安全服务程序处理数据;接着将处理结果定回共享内存的非关键应用可写区;最后以IPC中断的形式通知非关键应用。

在基于共享内存的通信功能技术上,为了进一步提高混合关键系统下的通信效率,本课题在共享内存中采用多段无锁点对点消息队列通信机制,并尽量减少数据复制的时间消耗进行通信效率优化。

多段无锁点对点消息队列通信机制运行过程中,消息队列被分为多个段,在任一时刻只允许一个任务(发送端或接收端)访问一个段,任务同步只会发生在段的边界处,多段消息队列通过以下设计实现无锁通信,生产者和消费者通过分别访问不同的段,使得队列不需要上锁,使用多段消息队列机制可以解决如乒乓cache和伪共享等共享问题。

减少数据复制的时间消耗进行通信效率优化方法用于非关键应用进程在发起关键应用请求时,直接在共享内存的非关键应用可写区中申请内存区作为发送数据区,在共享内存的非关键应用可写区中申请内存区作为接收数据区,实现零拷贝。同时,为充分利用双核并行性,提高多任务并行处理效率,非关键应用应合理有效地调度阻塞任务与非阻塞任务。

3 混合关键系统的通信中间件

本文研究了保障通信服务质量的轻量级通信软总线,基于统一模型的嵌入式轻量级软總线设计,针对运行环境资源受限、实时性强等特点,从高效通信机制、通信服务质量、数据订阅分发[6]管理等方面,构建以数据为中心的统一通信模型,屏蔽底层硬件对上层应用的约束。

轻量级软总线技术拟采用基于数据分发服务的通信中间件来实现,该技术不同于面向连接的通信模式,而是以数据为中心,关注于数据共享和系统状态消息。数据分发服务技术的核心是以数据为中心的发布订阅,构建了基于统一网络的通信模型,形成了一个与平台无关的数据模型。

数据分发服务技术标准化了分布式实时系统中数据发布、传递和接收的接口和行为,定义了以数据为中心的发布/订阅机制,提供了与平台无关的数据模型,屏蔽了链路层和网络协议的细节与异构:

(1)以数据为中心。数据分发服务创建了一个全局性的数据空间,通过主题来完成节点之间的关联。发布方提供主题到全局数据空间,订阅者在该空间找到需要的主题,然后发送方和订阅方通过主题连接后直接进行点对点的数据传送,不需要中间媒介。

(2)数据流可控服务质量。数据分发服务提供了多种服务质量策略(Quality of Service,简称QoS),来管理和优化网络中传输的数据流。QoS[7]不仅可以对数据流进行常规控制,如数据的持久度、数据的传输方式等,还可以进行更深层次的控制,如系统资源使用控制等。基于服务质量策略的数据流传输是支持多等级混合分区间互联互通的关键,对于时间确定性要求的高优先级的分区,可采用确定时间间隔等传输服务质量策略来明确通讯资源的使用和通讯质量的保障。

(3)自动发现和管理数据流。数据分发服务能设计成自动发现发布者和订阅者的每一个主题,根据它们之间设置的QoS参数自动建立数据流。数据分发服务模型提供了快速透明的定位,即插即用。它能迅速发现新的节点,也能及时地清除掉过时的、失败的节点和数据流。

4 结语

本文研究的混合关键系统中多个物理隔离空间的任务间高效异构通信技术,能够保障混合关键系统的安全关键、任务关键、非关键等任务的实时性响应调度、分布式統一通信、安全性隔离访问等能力,形成具有确定性保障能力的嵌入式混合关键任务操作系统保障机制,满足下一代混合信息系统在复杂战场环境中对嵌入式系统分布式、实时性、安全性、可靠性的严酷要求。

参考文献

[1] 陶鑫.多核混合关键系统中的任务划分调度算法及实现[D].武汉:华中科技大学,2017.

[2] 岳晨旭.基于TrustZone技术的Linux安全模块隔离方法研究[D].南京:南京大学,2017.

[3] 严琳.分布式实时仿真系统中软总线及仿真节点接口代理软件的研究与实现[D].西安:西安电子科技大学,2013.

[4] 秦玉函.嵌入式实时多处理系统的通信中间件技术研究[D].杭州:浙江大学,2018.

[5] 许豪,陈可.Linux下进程间通信机制的探讨[J].科技与创新,2016(03):83.

[6] 史会丽.基于DDS规范的数据发布/订阅模型应用研究[J].电脑知识与技术,2016(03):83.

[7] 冷枫麒.基于发布/订阅的分布式数据分发技术的研究与实现[D].成都:电子科技大学,2017.