摘要
本文着重介绍了我国自主研发的鸿道Intewell操作系统——针对低成本硬件数控系统的一种体系架构设计。此体系结构可以为数控系统业务应用提供丰富的生态,满足数控系统HMI应用的需要;同时,为数控系统提供强实时性能,通过实时控制应用与非实时HMI应用的多业务融合可实现高速、高精度控制。
关键词:混合异构系统,共享内存,半虚拟化,数控系统,鸿道操作系统
作者:郭建川,殷灿菊 作者单位:科东(广州)软件科技有限公司
引言
随着我国由制造业大国向制造业强国的战略转型,日益增长的先进制造、精密加工需求与高端制造装备核心技术相对缺乏、自主程度低的矛盾越发突出,特别是高端数控核心技术还比较落后,已经成为影响我国工业发展和国防安全的重要因素。因此,研发真正完全自主的高端数控核心系统,具有十分重要的市场价值和战略意义。
操作系统是数控系统的基础,为数控系统提供资源管理以及调度能力,是数控系统的关键部件,它的功能和性能制约着数控系统的性能与可靠性。经过数十年的努力,我国在数控系统的关键领域取得了一系列重大技术突破,研制出了若干具有自主知识产权的高档数控系统,但是我国尚未完全改变在数控操作系统受制于人的局面。目前数控系统的操作系统大多使用国外的Intime及开源Linux。
Intewell工业级网络操作系统为我国自主研发,可运行于多种通用硬件系统和嵌入式硬件系统中,包实时和非实时独立及融合两种应用形态。Intewell结合虚拟化和强实时特性,实现单一物理设备能力的资源池化、设备综合化的操作系统,使单一物理设备的业务能力根据应用需要灵活变化,同时还具备丰富的生态支持、高可靠性及强实时性能特点。Intewell根据硬件能力及业务要求有多种构型。因数控系统往往不具备硬件辅助虚拟化特性,因此Intewell提供了一种针对数控系统的面向低成本硬件的可配置混合异构系统形态的解决方案。本文着重介绍Intewell可配置混合异构系统的体系架构设计,此构型非常符合数控系统的业务需求。
1 设计目标
数控操作系统为数控系统业务应用提供丰富的生态,满足数控系统HMI应用的需要,同时为数控系统提供强实时性能。实时控制应用与非实时HMI应用多业务融合,实现高速、高精度控制。
数控操作系统需提供高可靠性,对于同时运行非实时业务、实时关键业务运行环境的数控可配置混合异构系统,研究两类异构业务特点,分别提供适合不同业务场景的安全隔离机制。
针对数控多种非实时业务任务同时运行时对安全资源隔离的需求,研究多个非实时任务间的空间隔离技术、故障隔离技术,为非实时任务关键软件提供高效容错隔离机制,以防止不同任务间的故障传播。
针对数控多种实时性业务任务同时运行时对安全资源隔离、关键任务快速重构等方面的需求,研究任务间的空间隔离技术、时间隔离技术、故障隔离技术,为安全关键实时应用业务提供高效容错隔离机制,以防止不同任务间的故障传播,并提供虚拟中断管理、分区管理与调试、容错管理等功能。另外,混合异构操作系统需要为非实时及实时应用之间提供高速通信机制。
2 可配置混合异构系统体系架构设计
2.1 总体架构
可配置混合异构系统支持非实时系统、实时系统、关键任务和非关键任务混合运行的容错构型及分区资源可配置的高可靠强实时系统。
通过微内核、半虚拟化及强实时等技术手段实现业务共享同一个资源池,弥补了传统数控系统的短板,确保实时业务资源优先供给、智能部署、安全隔离。体系结构如图1所示。
![]()
图1可配置混合异构系统体系结构
可配置混合异构系统由系统可视化资源配置、Intewell实时运行环境、强实时的分时分区操作系统、GPOS非实时操作系统系统以及非实时系统与实时系统之间的高速通信等部分组成。GPOS可以是Windows以及各种Linux版本。
2.2 系统可视化资源配置
系统硬件资源使用图形化展示方式对多系统使用的资源进行配置。资源静态配置,防止运行中动态配置的不确定性,提高整体系统的可靠性。另外,针对图形化配置进行资源配置检测方法,用于实现在编译前检测系统资源配置是否冲突,以避免系统资源配置冲突导致的操作系统运行出错。
在目标项目的源代码编译之前,获取目标项目的源代码;源代码中包括目标项目对应的配置文件,解析配置文件可以得到配置文件的配置信息;配置信息包括各节点的节点信息和属性配置信息,若确定配置信息中包括的节点信息或属性配置信息存在资源配置冲突,则确定目标项目的源代码存在资源配置冲突。
如此,可以实现在目标项目的操作系统的源代码编译之前检测出操作系统的资源配置是否冲突,进而避免系统资源配置冲突导致的操作系统运行出错,可以节省重新固化运行程序的时间。系统的资源配置检测装置如图2所示。
![]()
图2资源配置检测装置
①获取单元用于在目标项目的源代码编译之前,获取所述目标项目的源代码,所述源代码中包括所述目标项目对应的配置文件;
②解析单元用于解析所述配置文件,得到所述配置文件的配置信息,所述配置信息包括各节点的节点信息和各节点的属性配置信息;
③处理单元用于:若确定所述配置信息中包括的至少一个节点的节点信息或属性配置信息存在资源配置冲突,则确定所述目标项目的源代码存在资源配置冲突。
2.3 硬件资源抽象层
硬件资源抽象层实现非实时系统和实时系统在同一物理硬件上同时运行。对于多核CPU,实现逻辑分区和物理分区共存的情形;对于非实时系统;运行在部分物理核上;对于实时部分运行到其余物理核上,采用虚拟化技术,在此部分物理核上可以运行多个TTOS。硬件资源抽象层使数控系统硬件平台上承载不同类型数控业务的非实时、实时异构系统间对于各种硬件资源的灵活分配技术,针对的典型硬件资源包括计算资源、存储资源、信资源,既提供为保障响应及时性的单系统对硬件资源的独占机制,也支持发挥资源复用能力的多系统间对相同硬件资源的共享机制,主要包括多操作系统启动、资源灵活分配等技术。
多核CPU上多操作系统启动时,启动核读取预设的资源配置文件,并根据预设的资源配置文件启动基础操作系统,根据预设的资源配置文件确定客户机操作系统对应的应用核,使能对应的应用核,并将资源配置文件发送给对应的应用核。其中,预设的资源配置文件中至少包括多个操作系统的资源配置;对应的应用核被使能后,加载资源配置文件到预设的操作系统的唤醒物理地址,并根据资源配置文件完成应用核的初始化工作,以及在完成初始化工作后跳转到预设的被启动操作系统的入口地址,此启动模式可以有效实现在多核CPU上协同启动多个异构操作系统。多操作系统启动装置如图3所示。
![]()
图3多操作系统启动装置
启动核用于读取预设的资源配置文件,并根据所述预设的资源配置文件启动基础操作系统,并根据预设的资源配置文件确定客户机操作系统对应的应用核,使能所述对应的应用核,以及将资源配置文件发送给所述对应的应用核。其中,所述预设的资源配置文件中至少包括基础操作系统和客户机操作系统的资源配置。应用核被使能后,加载所述资源配置文件到预设的客户机操作系统的唤醒物理地址,并根据所述资源配置文件完成应用核的初始化工作,以及在完成初始化工作后跳转到预设的客户机操作系统的入口地址,启动客户机操作系统。
系统根据静态资源配置文件对硬件资源进行分配。每个操作系统运行时,都根据资源配置文件中的配置初始化使用特定的硬件资源,系统中针对存储资源和部分网卡资源采用共享机制。
2.4 高可靠性设计
Intewell操作系统可以保证非实时非关键任务及实时关键任务在一台计算机中安全、可靠地运行。非实时系统中的应用通过容器进行隔离,实时系统中的应用可以使用Intewell分时分区操作系统通过分区进行隔离,非实时系统及实时系统通过硬件资源抽象层对物理资源进行隔离。
容器作为一种轻量虚拟化技术,相较于基于虚拟机的全虚拟化方式,可以更细粒度地高效使用资源。通过使用容器可以将应用程序的代码、配置和依赖关系进行打包,将其变成容易使用的构建块,从而实现理想的环境一致性、运营效率、开发人员生产力和版本控制等诸多目标。容器可以保证应用程序获得快速、可靠、一致的部署,其间不受部署环境的影响,从而实现非实时系统中HMI等应用的相对安全性和隔离性。
实时系统侧使用强实时高可靠分时分区操作系统对实时侧提供容错隔离基础。分时分区操作系统的分区隔离通过MMU机制实现,即:在空间上每个分区拥有独立的运行空间,当一个分区的空间被破坏后不影响其他分区的正常运行,且分区间无法相互访问;在时间上,每个分区拥有独立的运行实体,该实体的运行在时间上与其他分区的运行无任何关系。另外,通过虚拟中断机制对I/O资源及异常进行隔离,从而实现实时系统中控制应用的安全性和隔离性。
2.5 强实时性设计
Intewell分时分区操作系统是一款硬实时操作系统。通过以下方法保证实时性:
①调度算法:采取可抢占调度保证优先级高的任务及中断及时得到执行和响应;根据时间调度表调度算法提供确定时间的调度方式;根据时间复杂度为O(1)的调度对象选择算法,保证时间确定性。
②调度时机:在可能出现更高优先级调度对象需要调度的时候及时进行调度,比如调度对象状态发生变化的API中的中断处理等;另外,要保证使用原子操作进行处理的时间尽可能短。
③基于硬件特性进行实时性优化:主要包括Cache的处理、禁止进入系统管理态的处理、电源管理的处理、特殊I/O等的处理。
④提供全局时钟同步:数控业务模块同时在多个核心、多个分区中运行。为了保障运行时间段的同步,需要实现全局时钟同步。操作系统实现全局时钟,并对各个分区的时钟进行同步,在分区层建立统一的全系统时间基准,从而实现分区间的时间同步。
2.6 多系统间通信
可配置混合异构系统包括若干个实时系统TTOS和一个非实时系统。通过虚拟网卡方式实现非实时系统及实时系统间任意两者的高速通信。通过SMIPC、共享内存方式和虚拟中断实现任意两个实时TTOS之间的通信。可配置混合异构系统间的通信机制如图4所示。
![]()
图4非实时系统与实时系统的高速通信机制
①虚拟网卡:虚拟网卡由后端和前端组成,后端及前端基于共享内存进行通信。虚拟网卡建立各实时虚拟机间以及各实时虚拟机与外部设备间的通信连接,可以解决需要通过硬件设备才能实现多个实时虚拟机间的网卡共享问题,实现了各实时虚拟机间以及各实时虚拟机与外部设备间的通信连接。
②共享内存:共享内存是针对其他通信机制运行效率较低的问题而设计的。共享内存通信机制基于内存映射机制将同一个物理内存区域映射到不同的虚拟地址空间,对该段内存区域的操作都是在同一个物理内存区域,实现内存共享以达到通信目的。在大量的数据传输需求上,可以实现零拷贝,从而达到高效的IPC通信。共享内存机制只为虚拟机提供了用于实现通信的共享存储区和对共享存储区进行操作的手段,在多核多线程高并发异构系统中应用对共享存储区的访问需要用户保证数据的一致性。
③SMIPC:SMIPC抽象出总线、节点、端口的概念,提供面向套接字的通信方式。SMIPC是一个多虚拟机间通信层(IPC),它使用共享内存提供在上运行的应用程序之间交换消息。它提供一个类似套接字的API来简化编程。SMIPC提供零拷贝功能接口,发送数据前通过接口从共享内存中分配缓冲,发送时不再拷贝用户数据到共享内存。
④虚拟中断:虚拟中断为分区提供中断异常隔离机制,另外虚拟中断也为分区间通信提供支持,虚拟中断中的服务中断为任意两个TTOS提供通知机制。
3 结语
作为数控系统的核心部件,操作系统是保证数控系统高速、高精、开放性与智能化的关键技术之一,而现有国产操作系统不能满足数控系统的需要。Intewell工业级网络操作系统为我国自主研发、实现单一物理设备能力的资源池化、设备综合化的操作系统,使单一物理设备的业务能力可根据应用需要灵活变化,同时还具备丰富的生态支持、高可靠性及强实时特点,使非实时系统和实时系统充分融合,以解决数控系统中应用业务的若干瓶颈问题。
(本文由《单片机与嵌入式系统应用》杂志社授权发表)
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.