CN105094973A - 基于敏感指令替换的ada程序分区运行支持系统 - Google Patents
基于敏感指令替换的ada程序分区运行支持系统 Download PDFInfo
- Publication number
- CN105094973A CN105094973A CN201510466159.7A CN201510466159A CN105094973A CN 105094973 A CN105094973 A CN 105094973A CN 201510466159 A CN201510466159 A CN 201510466159A CN 105094973 A CN105094973 A CN 105094973A
- Authority
- CN
- China
- Prior art keywords
- subregion
- ada
- partition
- program
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供了一种基于敏感指令替换的ADA程序分区运行支持系统,包括系统配置器、系统生成器、操作系统核心模块;通过系统配置器进行系统的图形化静态配置,最终生成系统配置表;系统生成器将系统配置表以及其他源代码一同编译、链接生成系统最终可执行文件,完成系统的最终生成;操作系统核心模块主要完成系统核心功能。利用本发明,航天软件程序员可以在不知晓其他分区内程序运行地址分配、运行时序、资源占用的情况下,独立编写ADA程序,由系统规划人员通过系统静态配置器统一分配内存占用地址范围、硬件资源分配和分区程序运行优先级。通过系统生成器进行ADA程序集成编译、链接,最终烧录运行。
Description
技术领域
本发明涉及空间飞行器综合电子系统软件设计技术领域,具体地,涉及一种基于敏感指令替换的ADA程序分区运行支持系统。
背景技术
随着空间飞行器型号任务数量日益增多,飞行器功能的日趋复杂,对星载软件研制能力的要求也越来越高,特别是对于综合电子系统软件尤为明显,这体现在:
1)软件功能复杂化。随着对飞行器性能、功能密度要求的提高,星上各单机软件逐渐向综合电子软件转移,由分系统自主控制转为部分或完全由中央单元集中管理,这使得综合电子软件接口增多,任务需求多样化,信息流复杂化。尤其综合电子软件将姿轨控软件集成进来后,现有的框架难以满足这些需求。需引入一个高可靠性、故障隔离安全有效的系统来综合管理各接口资源,调度任务执行,协调各终端间消息传递,以实现多任务有序可靠执行,星上资源合理运用。
2)软件研制任务和所涉及的研制团队增加。为提高软件开发、测试、管理的效率,提高软件复用率,通过综合电子软件系统规范化确立软件层次和接口,实现软件构件化、分层化设计框架,从而提高软件复用率和工程化管理效率。
目前的高可靠嵌入式支持分区运行的系统有成熟的应用,但也都存在一些不足之处:
国外的产品如CsLEOS、VxWorksAE653它们虽然在F-35、B767飞机上都已经成功使用的经验但是由于其价格昂贵、内核代码不公开等原因,把这些产品大量应用在国内航天飞行器上会有较大风险。
国内的产品如ReWorks由于其采用微内核技术实现分区管理、通信,在航天软件跨系统移植时需要进行大量的内核扩充。
目前没有发现同本发明类似技术的说明或报道,也尚未收集到国内外类似的资料。
发明内容
本发明针对现有技术中存在的上述不足,提供了一种基于敏感指令替换的ADA程序分区运行支持系统,该系统采用敏感指令替换技术,把涉及特权指令敏感指令执行全部替换为陷阱指令,交由系统分区虚拟执行,并向分区返回执行结果。
为了实现上述目的,本发明是通过以下技术方案实现的。
一种基于敏感指令替换的ADA程序分区运行支持系统,包括系统配置器、系统生成器以及操作系统核心模块;其中:
所述系统配置器提供图形化静态配置系统属性能力,生成系统配置表,所述系统配置表包括系统初始化配置表、分区间通信配置表、安全监控表;
所述系统生成器对由ADA语言编译出来的分区应用目标代码进行扫描和指令替换,将敏感指令的执行全部替换为陷阱指令,生成各个分区的目标代码,然后将操作系统核心模块的核心代码、系统配置表和各个分区的目标代码一同编译、链接,生成各个分区的可执行文件;
所述操作系统核心模块包括分区调度单元、分区内存保护单元、分区间通信单元、安全监控单元、敏感指令执行单元以及设备管理单元;其中:
分区调度单元实现各个分区内可执行文件的调度;
分区内存保护单元保证各个分区内的可执行文件仅能够操作所属分区的内存范围;
分区间通信单元实现可执行文件在分区间进行通信并确保通信的正确性;
安全监控单元完成三级安全管理报告并作相应错误和故障的响应;
敏感指令执行单元确保分区内可执行文件的正确执行;
设备管理单元保障分区运行支持系统对定时器、串口设备的控制功能。
优选地,所述系统配置器使用GMF(GraphicalModelingFramework,图形化建模框架)技术为用户提供图形化配置能力,并通过GMF技术自动将用户配置数据生成XML文件存储,之后使用DOM(DocumentObjectModel,文档对象模型)技术完成对XML文件的解析,完成由XML数据文件向系统配置表的转换,在ARINC653(航空电子应用软件标准接口)标准的约束下,完成系统配置表的静态配置。
优选地,所述系统属性包括系统分区数、分区属性、端口属性、分区间通信管道设置、安全监控设置。
优选地,所述系统生成器采用ADA语言实现分区内应用,实现过程中,使用由系统库提供的相关APEX(OracleApplicationExpress)接口,并通过编译器编译成ADA语言的目标文件;系统生成器扫描各分区内的目标文件,针对ADA语言程序捕捉敏感指令,替换为陷阱指令。
优选地,所述敏感指令包括:RDPSR(读处理器状态寄存器)指令、RDWIM(读窗口无效标志寄存器)指令、RDTBR(读异常基址寄存器)指令、WRPSR(写处理器状态寄存器)指令、WRWIM(写窗口无效标志寄存器)指令以及WRTBR(写异常基址寄存器)指令。
优选地,
所述三级安全管理报告为:模块级错误故障、分区级错误故障、应用级错误故障。
所述模块级错误和故障为:分区调度单元异常、设备异常;
所述分区级错误和故障为:分区间通信错误、非法内存访问;
所述应用级错误和故障为:分区内应用自定义异常。
本发明提供的基于敏感指令替换的ADA程序分区运行支持系统,其ADA程序的分区运行方法为:
通过系统配置器静态配置系统属性,系统属性包括系统分区数、分区属性、端口属性、分区间通信管道设置、安全监控设置,生成系统配置表;
在配置好的系统属性约束下,完成每个分区内应用的ADA程序编码;
通过系统生成器完成分区内ADA程序编码的独立编译与指令替换操作;
将操作系统核心模块的核心代码、系统配置表与修正过的分区内目标代码一同链接生成最终操作系统核心模块可执行文件。
与现有技术相比,本发明具有如下技术特点:
1、本发明通过指令替换的方法,实现了多个应用在运行时间上隔离并发,在运行空间上隔离保护,满足了航天软件开发过程中对软件的可移植性、可重用性、模块化以及多种权限等级软件共处的要求,较好的符合了高可靠空间飞行器星载软件系统的要求。
2、随着航天系统中大量增加的ADA应用程序以及日益丰富、完善的ADA代码库,本发明利用ADA这一通用程序设计语言,实现基于敏感指令替换的ADA程序分区运行支持系统,弥补了国内的此项空白。
3、本发明更有利于软件的系统间移植。
4、参与系统最终实现的人员可分为系统规划人员以及应用程序员,其中系统规划人员负责对系统属性进行静态配置,通过图形化的配置方式,最终生成系统所需的各个配置表;应用程序员则根据系统需求,开发各个分区内的应用程序。各分区内的应用程序运行无需关注其他分区内应用程序的实现及硬件配置,由ADA程序分区运行支持系统进行分区间的切换运行,分区内的应用程序具有较好的继承性和移植性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为ADA程序分区运行支持系统的结构图;
图2为tbr陷阱处理流程图;
图3为系统配置实例;
图4为分区存储结构图;
图5为保存任务上下文流程图;
图6为恢复上下文流程图;
图7为任务级切换流程图;
图8为分区间通信流程图;
图9为写采样消息接口流程图;
图10为读采样消息接口流程图;
图11为发送队列接口程序流程图;
图12为接收队列接口程序流程图。
具体实施方式
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
实施例
本实施例提供了一种基于敏感指令替换的ADA程序分区运行支持系统,包括系统配置器、系统生成器以及操作系统核心模块;其中:
所述系统配置器提供图形化静态配置系统属性能力,生成系统配置表,所述系统配置表包括系统初始化配置表、分区间通信配置表、安全监控表;
所述系统生成器对由ADA语言编译出来的分区应用目标代码进行扫描和指令替换,将敏感指令的执行全部替换为陷阱指令,生成各个分区的应用程序,然后将系统配置表和各个分区的应用程序一同编译、链接,生成各个分区的可执行文件;
所述操作系统核心模块包括分区调度单元、分区内存保护单元、分区间通信单元、安全监控单元、敏感指令执行单元以及设备管理单元;其中:
分区调度单元实现各个分区内可执行文件的调度;
分区内存保护单元保证各个分区内的可执行文件仅能够操作所属分区的内存范围;
分区间通信单元实现可执行文件在分区间进行通信并确保通信的正确性;
安全监控单元完成三级安全管理报告并响应模块一级、分区一级以及应用一级的错误和故障;
敏感指令执行单元确保分区内可执行文件的正确执行;
设备管理单元保系统对所有设备(定时器、串口设备)的控制。
下面结合附图对本实施例进一步描述。
如图1所示,本实施例提供的基于敏感指令替换的ADA程序分区运行支持系统,包括系统配置器、系统生成器以及操作系统核心模块。
系统配置器向系统规划人员提供系统的图形化静态配置能力,包括系统分区数、分区属性、分区间通信管道设置、安全监控设置。
对于分区属性的配置,需要配置的属性有分区持续时间、分区内存的分配以及分区时间间隔,通过添加分区完成分区的建立。配置分区间通信界面中,首先需要进行配置通道属性,而通道的属性包含有通道模式(单播、多播、广播)、通道传输方式(采样、队列)。
配置通道主要是为了完成数据的传输。在进行分区间端口通信的时候,利用的是共享内存进行传输数据。一个通道界面会在配置文件里开辟一个共享内存,这样能够使绑定通道的两个或多个收发端口通过这个共享内存互相通信。
在通道模式上要求无论是单播、多播还是广播。只能绑定一个发送端口,而单播的通道只能绑定一个接收端口。在界面程序中会根据配置的通道模式自动判定能够绑定多少个发送以及接收端口。当绑定端口出现错误时会根据情况给出相应的错误提示。通道传输模式要求与配置的端口类型(采样、队列)需要一致。创建完端口后,界面会根据配置的通道传输模式生成相应的缓冲区。采样模式生成的缓冲区形式为charsamp[channelnum][32];其中channelnum为通道ID,32为端口设置的消息大小。
在配置分区间通信的时候还需要配置一个端口属性。属性中包含了端口名称、消息长度、分区ID、端口类型、队列长度、采样时间、端口模式、端口映射、所属通道。端口类型分为采样和队列两种形式,端口模式分为发送端口和接收端口。
在安全管理中,用户可以分别对分区级和系统级错误进行相关的处理措施配置。分区级错误包含分区配置表初始化错误、分区初始化错误、进程管理错误、错误管理进程执行、内存访问越界,处理的方式包含三种有忽略、暂停分区、重启分区;系统级错误包含了系统初始化过程配置表错误、系统初始化其他错误、系统功能执行错误、分区切换错误。处理方式包含了关闭系统、忽略、重启系统三种处理方式。当配置属性完毕后会根据各个属性信息生成两个配置文件分别为config.c和config.h生成的目录为应用程序的当前目录下。
端口的数据结构如下:
用户完成系统初始化配置表文件、分区间通信配置表文件以及安全监控配置表文件的全部配置工作之后,即可将配置文件与其他源代码一同编译生成最终可运行文件。一个系统配置的实例如图3所示。
系统生成器对ADA目标文件进行扫描与指令替换,对ADA代码进行集成编译、链接。为了达到操作系统对硬件的绝对控制权,避免分区内应用对硬件进行不正当操作而影响系统行为,系统生成器必须对由ADA编译出来的分区应用目标代码进行扫描和指令替换,将敏感指令的执行全部替换为陷入指令,交由系统分区虚拟执行,并向分区返回执行结果,这样一方面保障了分区应用的正确执行,另一方面又保障分区内应用不会影响系统行为。需要替换的指令包括RDPSR(读处理器状态寄存器)、RDWIM(读窗口无效标志寄存器)、RDTBR(读异常基址寄存器)、WRPSR(写处理器状态寄存器)、WRWIM(写窗口无效标志寄存器)以及WRTBR(写异常基址寄存器)。在扫描到这些敏感指令之后,需要将其替换为软陷阱指令。当分区内代码执行到软陷阱指令时,则会陷入到操作系统中,操作系统根据软陷阱指令的陷阱号,可以判断出是哪种指令引起的陷阱,进而进行相关处理。
这样在执行分区代码时原特权指令就不会执行而进入ta陷阱由系统执行特权指令。至于原指令的地址与指令代码需要进行保存到配置文件中。使系统能够在进行ta陷阱处理的时候清楚替换前的指令。再进行相应的操作。
wrtbr指令ta陷阱的处理方式为当分区代码需要执行陷阱基地址的操作时,首先进入ta陷阱,从配置文件中获取替换前的指令然后根据指令解析出需要写入的基地址的数据,并保存到系统变量current_tcb->tbr中。这时current_tcb->tbr为当前运行分区时的tbr基地址的值。
这样在执行分区陷阱操作的时候,首先系统会进入自己的tbr中,同时将当前程序运行的地址包含在%l1,%l2两个寄存器中。在进行陷阱处理的时候分析当前触发的是哪一条中断陷阱,将基地址current_tcb->tbr加上相应陷阱的tt值后退出陷阱。当从陷阱返回时跳转到tbr处理函数里gotoPartitionISR(),该函数执行的操作是将指令跳转到current_tcb->tbr地址执行分区中的陷阱处理函数。在执行完分区的陷阱后根据开始窗口保存的寄存器%l1、%l2,返回到分区应用程序的地址继续执行。tbr陷阱处理流程如图2所示。
wrpsr指令ta陷阱的处理方式为将替换前的指令读取出来,并解析指令。由于psr(处理器状态寄存器)中的S位、ET位、PIL位这些跟整个系统运行环境有关的状态需要维持原来的状态,不能够将其进行修改只对于其他例如设置窗口、条件码等位进行修改。最后将计算结果写入psr。
wrwim指令ta陷阱的处理是将原指令写入到wim寄存器中。这样能够保证分区代码不能够执行特权指令而是将特权指令都由系统来进行处理。
在完成对ADA语言目标文件的扫描与指令替换后,将由操作系统核心模块的核心代码、配置文件代码生成的目标文件(系统配置表)与各分区应用的目标代码一同链接生成最终可执行文件。
操作系统核心模块主要完成操作系统核心功能的实现。主要包括分区模式切换、分区调度单元、分区内存保护单元、分区间通信单元、安全监控单元、时间管理单元、敏感指令执行单元以及设备管理单元。
分区是本系统中的主要管理对象。每个分区在系统中都由分区控制块、分区代码,以及分区运行时堆栈组成,这三部分的关系如图4所示,在创建分区时系统会给分区分配一个分区控制块,而分区代码入口地址以及分区运行时所需要的堆栈则由系统规划人员指定。本系统中分区的属性主要分为静态属性和动态属性两种,静态属性是在分区创建时指定的,在系统运行过程中不会发生变化的固有属性,比如分区名称、分区入口地址等;而运动态属性则会在系统运行过程中发生变化,体现分区的状态变化,例如分区栈指针、分区运行地址、分区状态等。系统中分区各属性的保存和管理都是通过分区控制块来完成的,如表1所示。
表1分区控制块属性及说明
属性 | 说明 | 状态 |
next | 下一个分区控制块指针 | 静态 |
pre | 前一个分区控制块指针 | 静态 |
name | 分区名称 | 静态 |
entry | 分区入口地址 | 静态 |
sp | 分区堆栈栈顶指针 | 动态 |
fp | 分区堆栈栈底指针 | 动态 |
pc | 保存下次运行时指令的地址 | 动态 |
npc | 保存下次运行时下一条指令的地址 | 动态 |
int_psr | 分区被中断时psr寄存器值 | 动态 |
taskContext | 分区上下文 | 动态 |
priority | 分区优先级 | 静态 |
state | 分区状态 | 动态 |
releaseTime | 启动时间,系统启动后经过多长时间才启动该分区 | 静态 |
period | 周期,分区每隔多长时间运行一次 | 静态 |
deadLine | 每次运行最长时间deadLine<=period | 静态 |
waitTime | 剩余等待时间,第一次启动时从releaseTime开始 | 动态 |
递减 | ||
tbr | 虚拟tbr | 动态 |
timerl | 虚拟timerl | 动态 |
Timer2 | 虚拟timer2 | 动态 |
任务控制块中主要存储了任务入口函数指针entry、任务运行时栈顶指针sp、任务下次运行指令地址pc、任务上下文保存区taskContext、任务运行栈stack、任务状态state、任务优先级priority以及指向前后任务控制块的指针next、pre。其中在任务初始化时会指定入口函数指针并将其赋给pc,第一次运行时便从此入口开始执行。而pc则在每次发生调度任务放弃CPU时记录下次运行时的指令地址,并在下次运行时从pc处开始执行指令。任务控制块所占存储空间的分配并不是动态的,根据系统规划人员配置的系统分区数N加上系统保留的空闲任务,所以在系统初始化时便已经申请了一个大小为N+i的任务控制块数组,按照任务的创建次序依次分配给各任务。
任务切换需要从一个执行点跳转到另一个执行点继续执行,通过修改PC、NPC值来实现。中断处理程序中修改%l1和%l2寄存器的值,即可控制中断返回时的PC、NPC。在切换之前我们需要将上下文保存起来,并在他下次运行前恢复上下文,保存上下文流程如图5所示,恢复流程如图6,完整的切换流程如图7。
分区间通信最基本的基址就是管道。一个管道可以被定义为从一个数据源到一个或者多个目的端的逻辑连接。数据源或者目的端可以是一个或者多个分区。分区通过一种称为端口的接入点来访问管道。一个管道可以包含一个或者多个端口。每个端口均为分区提供了通过特定管道进行数据交换所需要的所有资源。同时,一个分区,可以通过多个管道进行数据交换。管道可被描述为连接一个发送端与多个接收端的路径。
在分区间通信的过程中配置了分区之间单播(采样、队列),多播(采样、队列),广播(采样、队列)多种通信方式。如图8所示为分区间通信流程。分区间通信中数据的传输都是通过管道中的缓冲区来进行管理的。通道缓冲区的形式分为两种:一种为采样模式,另一种为队列模式。在以上两种模式下,设置通道ID号,通道信息包含了端口的ID号,这样在进行端口通信的时候能够确保端口找到所属通道。
当通道为单播通道则该通道上只能绑定两个端口(源端口、目的端口),而当通道的模式为多播或广播的时候则管道上会绑定多个端口。每个通道也只会有一个源端口。当端口发送消息的时候会根据所属通道的ID将数据写到相应通道的缓冲区中(一个通道只有一个缓冲区)。以供目的端口接收数据。端口模式分为两种,采样模式、队列模式。
在采样模式下,写采样消息接口包含的输入参数有采样端口的ID号、输入消息的地址、输入消息的长度以及一个输出参数程序运行状态的返回值,接口程序的具体步骤如图9。采样通信的映射分为共享内存和串口通信两种方式。当端口配置的映射模式为共享内存的时候,首先由端口的ID号查找到所属通道。利用通道的ID号将数据写入相应通道的缓冲区中,并且将消息的长度输入到记录消息长度的数组里。当映射模式为串口模式的时候,程序往串口发送的数据首先的是数据长度然后将数据写入串口,使接收串口明确接收数据的长度。读采样消息的接口的输入参数包含采样端口ID号、消息地址。输出参数包含获取的消息长度、有效性、程序运行状态的返回值,读取采样的程序流程如下图10。读采样接口的程序在处理共享内存模式的时候是从缓冲区中读取数据。写采样消息接口的流程中数据是由发送端口写入通道缓冲区中的。在接受数据的时候会进行判断该缓冲区上的数据是否为空。这就需要判定消息长度。如果该值为0,则代表数据长度为0,缓冲区上为空。读取缓冲区数据的时候就根据数据长度从缓冲区上进行取数。
发送队列接口程序的输入参数有队列端口ID、输入消息地址、消息长度、超时和输出参数程序运行状态的返回值,具体程序流程如图11。在配置文件中先定义队列的头和尾为0。当队列有数据来,头加1;当队列的数据被取走,尾加1。这样队列头-队列尾>队列长度时,证明队列消息超过了指定的队列长度。以此判定队列是否已经写满。当队列已经写满后程序将不支持再往队列输入数据。接收队列消息接口程序的输入参数包含了队列端口的ID号、超时时间、输出消息地址、输出参数包含了消息的大小、程序运行状态的返回值,接口程序的流程如下图12。在接收队列消息接口程序里,每取走一个数据后队列就会在结构体上把队列尾加1,当队列头=队列尾的时候代表数据已经全部被取走。队列缓冲区是利用取模的形式来实现队列消息的机制。当发送消息的时候会将数据写在缓冲区数组,队列中每当写入一个消息后队列头加1,直到队列头-队列尾等于队列长度,证明队列已经写满。当接收消息的时候,队列中读取数据,并每当取走一个消息后队列尾+1,直到队列头等于队列尾证明队列已经被取空。
分区内存保护采用“起始/结束地址策略”和“标记/掩码地址策略”。对于“起始/结束地址策略”通过指定被保护内存的起始地址、结束地址,每一个写保护单元都可以对指定内存段的内部或外部的特权态以及用户态写操作进行单独或同时控制。在这种保护策略下,对于一个写操作的地址只需将其写地址与配置的内存段的起始、结束地址进行比较从而判断写操作的地址是在指定内存段的内部还是外部。如果当前IU模式的写保护是使能的并且一个块或者段保护错误被检测到,则写操作被取消并且产生一个写错误陷阱。“标记/掩码地址策略”中每一个单元都可以实现对32KB至1GB的二进制对齐的内存段的内部或外部进行写访问控制。每个写保护单元都是通过一个写保护寄存器配置的。这种保护的基础是对RAM地址进行划分,从而定义一个32KB至1GB的内存段。RAM地址空间范围是0x40000000-0x7FFFFFFF,所以其地址高两位固定为01再将其低30位划分成两部分,每部分占15位。在进行写操作时,写地址会和WPRn的tag位进行异或,异或的结果再和WPRn的mask位做与运算。如果最后得到的结果等于0,则说明写操作的地址在WPRn所定义的内存段内。在写保护单元使能的情况下,如果如果写操作的地址在WPRn所定义的内存段内,并且WPRn的bp位等于1;或者写操作的地址不在WPRn所定义的内存段内并且WPRn的bp位等于0,则会产生写陷阱。通过这2中内存保护策略对系统内存进行分区隔离、保护。
通过以上系统配置器、系统生成器以及操作系统核心三大部分的实现,从而完成一个ADA程序分区运行支持系统。航天软件程序员可以在不知晓其他分区内程序运行地址分配、运行时序、资源占用的情况下,独立编写ADA程序。由系统规划人员通过系统静态配置器统一分配内存占用地址范围、硬件资源分配和分区程序运行优先级。通过系统生成器进行ADA程序集成编译、链接,最终烧录运行。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
Claims (6)
1.一种基于敏感指令替换的ADA程序分区运行支持系统,其特征在于,包括系统配置器、系统生成器以及操作系统核心模块;其中:
所述系统配置器提供图形化静态配置系统属性能力,生成系统配置表,所述系统配置表包括系统初始化配置表、分区间通信配置表、安全监控表;
所述系统生成器对由ADA语言编译出来的分区应用目标代码进行扫描和指令替换,将敏感指令的执行全部替换为陷阱指令,生成各个分区的应用程序,然后将操作系统核心模块的核心代码、系统配置表和各个分区的目标代码一同编译、链接,生成各个分区的可执行文件;
所述操作系统核心模块包括分区调度单元、分区内存保护单元、分区间通信单元、安全监控单元、敏感指令执行单元以及设备管理单元;其中:
分区调度单元实现各个分区内可执行文件的调度;
分区内存保护单元保证各个分区内的可执行文件仅能够操作所属分区的内存范围;
分区间通信单元实现可执行文件在分区间进行通信并确保通信的正确性;
安全监控单元完成三级安全管理报告并作相应错误和故障的响应;
敏感指令执行单元确保分区内可执行文件的正确执行;
设备管理单元保障分区运行支持系统的控制功能。
2.根据权利要求1所述的基于敏感指令替换的ADA程序分区运行支持系统,其特征在于,所述系统配置器使用图形化建模框架技术为用户提供图形化配置能力,并通过GMF图形化建模框架技术自动将用户配置数据生成XML文件存储,之后使用文档对象模型技术完成对XML文件的解析,完成由XML数据文件向系统配置表的转换,在航空电子应用软件标准接口标准的约束下,完成系统配置表的静态配置。
3.根据权利要求1或2所述的基于敏感指令替换的ADA程序分区运行支持系统,其特征在于,所述系统属性包括系统分区数、分区属性、端口属性、分区间通信管道设置、安全监控设置。
4.根据权利要求1所述的基于敏感指令替换的ADA程序分区运行支持系统,其特征在于,所述系统生成器采用ADA语言实现分区内应用,实现过程中,使用由系统库提供的相关APEX接口,并通过编译器编译成ADA语言的目标文件;系统生成器扫描各分区内的目标文件,针对ADA语言程序捕捉敏感指令,替换为陷阱指令。
5.根据权利要求4所述的基于敏感指令替换的ADA程序分区运行支持系统,其特征在于,所述敏感指令包括:读处理器状态寄存器指令、读窗口无效标志寄存器指令、读异常基址寄存器指令、写处理器状态寄存器指令、写窗口无效标志寄存器指令以及写异常基址寄存器指令。
6.根据权利要求1所述的基于敏感指令替换的ADA程序分区运行支持系统,其特征在于,所述三级安全管理报告包括:模块级错误和故障、分区级错误和故障、应用级错误和故障;其中:
所述模块级错误和故障为:分区调度单元异常、设备异常;
所述分区级错误和故障为:分区间通信错误、非法内存访问;
所述应用级错误和故障为:分区内应用自定义异常。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510466159.7A CN105094973A (zh) | 2015-07-31 | 2015-07-31 | 基于敏感指令替换的ada程序分区运行支持系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510466159.7A CN105094973A (zh) | 2015-07-31 | 2015-07-31 | 基于敏感指令替换的ada程序分区运行支持系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105094973A true CN105094973A (zh) | 2015-11-25 |
Family
ID=54575481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510466159.7A Pending CN105094973A (zh) | 2015-07-31 | 2015-07-31 | 基于敏感指令替换的ada程序分区运行支持系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105094973A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110286909A (zh) * | 2019-06-29 | 2019-09-27 | 潍柴动力股份有限公司 | Simulink模型资源使用数据的统计方法及装置 |
CN110413402A (zh) * | 2018-04-28 | 2019-11-05 | 北京东土科技股份有限公司 | 一种嵌入式分区操作系统的分区数据配置方法及装置 |
CN110515595A (zh) * | 2019-08-02 | 2019-11-29 | 中国航空无线电电子研究所 | 一种航空电子分布式管理系统的资源建模及管理方法 |
CN112328331A (zh) * | 2020-11-30 | 2021-02-05 | 中国航空工业集团公司西安航空计算技术研究所 | 一种分区更换应用的方法和装置 |
CN112988120A (zh) * | 2021-03-12 | 2021-06-18 | 上海卫星工程研究所 | Ada语言用卫星遥测下行调度参数动态在线装订方法及系统 |
WO2023093134A1 (zh) * | 2021-11-25 | 2023-06-01 | 中兴通讯股份有限公司 | 系统资源分配代码的生成方法、装置、电子设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591715A (zh) * | 2012-01-05 | 2012-07-18 | 北京航空航天大学 | 一种使用多队列技术的虚拟机网络性能优化的实现方法 |
EP2743830A1 (en) * | 2012-12-13 | 2014-06-18 | Eurocopter España, S.A. | Flexible data communication among partitions in integrated modular avionics |
EP2784676A1 (en) * | 2013-03-28 | 2014-10-01 | Eurocopter España, S.A. | DIMA extension health monitor supervisor |
-
2015
- 2015-07-31 CN CN201510466159.7A patent/CN105094973A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591715A (zh) * | 2012-01-05 | 2012-07-18 | 北京航空航天大学 | 一种使用多队列技术的虚拟机网络性能优化的实现方法 |
EP2743830A1 (en) * | 2012-12-13 | 2014-06-18 | Eurocopter España, S.A. | Flexible data communication among partitions in integrated modular avionics |
EP2784676A1 (en) * | 2013-03-28 | 2014-10-01 | Eurocopter España, S.A. | DIMA extension health monitor supervisor |
Non-Patent Citations (4)
Title |
---|
(美)JAMESE.SMITH,RAVINAIR;安虹译: "《虚拟机:系统与进程的通用平台》", 20 April 2009 * |
张尧学,宋虹,张高: "《计算机操作系统教程 第4版》", 31 October 2013 * |
李伟: "高可靠嵌入式操作系统的构建与配置研究", 《中国优秀硕士论文全文数据库 信息科技辑》 * |
马琳,李平: "一种基于GMF的测试系统可视化建模方法", 《科技创新导报》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413402A (zh) * | 2018-04-28 | 2019-11-05 | 北京东土科技股份有限公司 | 一种嵌入式分区操作系统的分区数据配置方法及装置 |
CN110286909A (zh) * | 2019-06-29 | 2019-09-27 | 潍柴动力股份有限公司 | Simulink模型资源使用数据的统计方法及装置 |
CN110515595A (zh) * | 2019-08-02 | 2019-11-29 | 中国航空无线电电子研究所 | 一种航空电子分布式管理系统的资源建模及管理方法 |
CN110515595B (zh) * | 2019-08-02 | 2024-02-02 | 中国航空无线电电子研究所 | 一种航空电子分布式管理系统的资源建模及管理方法 |
CN112328331A (zh) * | 2020-11-30 | 2021-02-05 | 中国航空工业集团公司西安航空计算技术研究所 | 一种分区更换应用的方法和装置 |
CN112328331B (zh) * | 2020-11-30 | 2023-03-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种分区更换应用的方法和装置 |
CN112988120A (zh) * | 2021-03-12 | 2021-06-18 | 上海卫星工程研究所 | Ada语言用卫星遥测下行调度参数动态在线装订方法及系统 |
WO2023093134A1 (zh) * | 2021-11-25 | 2023-06-01 | 中兴通讯股份有限公司 | 系统资源分配代码的生成方法、装置、电子设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094973A (zh) | 基于敏感指令替换的ada程序分区运行支持系统 | |
US7581142B2 (en) | Method and system usable in sensor networks for handling memory faults | |
CN103064784B (zh) | 面向Xen环境的运行时内存泄漏检测方法及其实现系统 | |
US20020099753A1 (en) | System and method for concurrently supporting multiple independent virtual machines | |
US20060265705A1 (en) | Computer architecture and method of operation for multi-computer distributed processing with finalization of objects | |
Maccabe et al. | SUNMOS for the Intel Paragon-a brief users guide | |
CN105446806B (zh) | 一种应用程序无响应的处理方法及装置 | |
CN100511156C (zh) | 强制性地终止输入/输出操作阻止的线程的设备和方法 | |
CN101251819A (zh) | 一种适用于多处理器核系统芯片的调试方法 | |
US20110173287A1 (en) | Preventing messaging queue deadlocks in a dma environment | |
Porter et al. | Type-safe updating for modular WSN software | |
US9223697B2 (en) | Computer reprogramming method, data storage medium and motor vehicle computer | |
CN102331961A (zh) | 并行模拟多个处理器的方法及系统、调度器 | |
KR100803290B1 (ko) | 무선 센서 네트워크 환경에서 프로그램을 변경하기 위한확장 가능한 가상 머신 및 이를 이용한 리프로그래밍 방법 | |
CN104102491B (zh) | 单片机实时任务与耗时任务并行执行的实现方法和系统 | |
CN112698912B (zh) | 一种Java Card虚拟机运行环境及内存管理方法 | |
CN109901831A (zh) | 软件的多平台兼容运行方法及兼容运行装置 | |
CN109947407B (zh) | 一种数据获取方法及装置 | |
CN112711527A (zh) | 一种实时进程的调试方法、装置、目标机和存储介质 | |
CN109086200B (zh) | 一种基于安卓虚拟机修改的有效测试框架 | |
US9122549B2 (en) | Method and system for emulation of instructions and hardware using background guest mode processing | |
CN112214277A (zh) | 基于虚拟机的操作系统分区方法、装置及介质 | |
US11593159B2 (en) | External exception handling | |
CN116775038B (zh) | 支持iec和c++任务同时或独立运行的运行时系统 | |
US20240231847A9 (en) | Java bytecode injection methods and apparatuses, electronic devices, and storage media |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151125 |