CN109960623B - 一种机载分区操作系统仿真器运行时监控方法 - Google Patents
一种机载分区操作系统仿真器运行时监控方法 Download PDFInfo
- Publication number
- CN109960623B CN109960623B CN201711416088.5A CN201711416088A CN109960623B CN 109960623 B CN109960623 B CN 109960623B CN 201711416088 A CN201711416088 A CN 201711416088A CN 109960623 B CN109960623 B CN 109960623B
- Authority
- CN
- China
- Prior art keywords
- state
- operating system
- airborne
- event
- onboard
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种机载分区操作系统仿真器运行时监控方法,涉及到机载分区操作系统仿真器的符合性测试以及基于分区操作系统的机载应用程序的运行时验证。具体是利用内嵌软件传感器的方式,在机载分区操作系统仿真器的任务管理及任务调度代码中插装,完成对任务的状态切换、触发状态切换的事件的监控,输出一个状态‑事件的序列,从而得到机载应用程序的任务执行轨迹,为机载应用程序的运行时验证、机载分区操作系统仿真器的符合性测试提供基础。用户可将这种任务运行轨迹作为各种运行时验证工具以及符合性测试工具的输入,完成机载应用程序的运行时验证和机载操作系统仿真器的符合性测试。
Description
技术领域
本发明属于机载综合航电系统软件技术领域,涉及到机载分区操作系统仿真器的符合性测试以及基于分区操作系统的机载应用程序的运行时验证。具体是利用内嵌软件传感器的方式,在机载分区操作系统仿真器的任务管理及任务调度代码中插装,完成对任务的状态切换、触发状态切换的事件的监控,输出一个状态-事件的序列,从而得到机载应用程序的任务执行轨迹,为机载应用程序的运行时验证、机载分区操作系统仿真器的符合性测试提供基础。
背景技术
机载软件的开发和验证越来越多的依赖于机载操作系统仿真器。为了满足机载软件的高安全性需求,必须对机载操作系统仿真器的行为特性进行监控,以验证机载操作系统仿真器相对于机载分区操作系统规范的符合性。现有的运行时监控发明,主要针对车辆运行系统、通用软件系统,基本没有关于机载分区操作系统仿真器软件运行时监控的发明。国内有发明《一种基于ARINC653标准机载电子设备健康监控体系》,设立了任务级健康监控功能区,但其目标是机载电子设备的故障恢复和诊断,缺乏对机载操作系统的分区内任务的执行轨迹的监控,无法支持机载操作系统仿真器的符合性测试以及机载应用程序的运行时验证。本发明则能监控机载操作系统仿真器的内部任务状态变化。在此基础上,既可以对机载操作系统仿真器进行符合性测试,又可以用来支撑上层机载应用程序的运行时验证。
本发明针对当前缺乏有效的机载应用程序状态监控工具以及机载操作系统仿真器符合性测试基础的现状,提出了一种基于内嵌软件传感器的机载分区操作系统仿真器的运行时监控方法。本方案主要解决了机载操作系统仿真器任务切换原因复杂,难以进行有效测试和验证的问题,提供了内嵌软件传感器,实时感知分区内任务的切换,根据代码上下文判断触发任务切换的事件类型;通过消息通道将此序列传输到仿真器外部的显示界面并保存;完成了对分区内任务的状态-事件序列的采集。用户可将这种任务运行轨迹作为各种运行时验证工具以及符合性测试工具的输入,完成机载应用程序的运行时验证和机载操作系统仿真器的符合性测试。
发明内容
本方案通过在机载操作系统仿真器代码中插装来实现内嵌软件传感器。外部显示界面和日志程序只需从消息通道接收并显示、记录任务执行轨迹,无需更多的监控代码生成规则。
方案总体思想是:首先,根据对机载操作系统仿真器的源代码的分析,找出所有发生分区状态及任务状态切换的位置,并在相应位置插入软件传感器代码;其次,根据机载分区操作系统规范ARINC653规范中对分区内任务状态切换的描述,并参照机载操作系统仿真器的代码,推理触发任务状态切换的事件,将此状态-事件序列记录下来;然后,通过消息通道将编码后的状态-事件序列发送给显示界面和记录模块;最后,在显示界面上显示任务状态切换以及任务执行轨迹,并将任务执行轨迹保存下来,作为进一步的验证和测试的依据。方案流程如图1所示。
利用上述思想,形成了基于内嵌软件传感器的机载分区操作系统仿真器运行时监控软件方法:采用状态传感器代码记录分区内任务的状态切换,并用事件传感器代码记录触发本此状态切换的事件;将这两类传感器插装到机载分区操作系统仿真器代码中,采用异步方式将状态-事件序列通过消息通道输出到监控显示和记录模块,将插入代码对任务调度的影响降低到了最小程度。
技术方案步骤如下:
1.一种机载分区操作系统仿真器运行时监控方法,包括以下几个步骤;
步骤一内嵌软件传感器代码插入:根据对机载操作系统仿真器代码的分析,共找到28处产生任务状态切换代码;在这些任务状态切换代码中插入内嵌软件传感器代码;
步骤二状态事件序列推理及记录:以机载分区操作系统规范ARINC653-Part1中对任务状态切换的触发事件的描述为依据,根据状态的切换以及机载操作系统仿真器的代码对触发状态转换的事件进行推理,推理逻辑用代码实现。然后将状态和事件组合成正确的序列,记录在临时缓存中。
步骤三状态事件序列发送:将状态事件序列编码为位段,采用异步方式,通过Windows的管道机制将状态事件序列发送到外部监控显示与记录模块;
步骤四状态事件序列显示与保存:根据状态事件编码规则,将状态事件序列解析并以状态转换图的形式直观地显示在监控界面上,同时按照状态事件的交替序列的形式保存到文本文件中。
2.所述机载操作系统仿真器代码,采用状态传感器代码记录分区内任务的状态切换,并用事件传感器代码记录触发本此状态切换的事件。
3.所诉监控的代码执行时间在20us以下。
本发明解决了机载操作系统仿真器内部状态触发事件难以监控和记录的问题,采用状态监控传感器和事件监控传感器采集到了分区内任务的状态-事件转换序列,满足了运行时验证和符合性测试的需求。同时,本方案可以作为真实的机载分区操作系统监控及机载应用程序运行时验证的参考方案。
本发明方案充分考虑到了机载分区操作系统强实时特性,插入的监控代码的执行时间在20us以下,并不会影响机载分区操作系统的实时调度,具有很好的可行性。
附图说明
图1是方案流程图。
图2是消息传输格式定义图。
消息长度共为5字节,其中包括:
消息首部(1字节),记录了监控类型信息和消息总长度;
消息第一字节(1字节),记录了模块编号、事件类型、及事件编号;
消息第二字节(1字节),记录了子事件编号,并留出空闲段共将来扩展。
消息第三字节(1字节),记录了发生状态切换的任务所在的分区;
消息第四字节(1字节),记录了发生状态切换的进程编号。
图3是状态-事件序列消息的压缩和传输过程图。
具体实施方式
本方案主要由三部分组成:状态-事件感知与推理部分,以代码插装的方式,在机载操作系统仿真器中插入状态监控代码,记录状态转换,并推理其触发事件。状态-事件编码及传输部分,按照自定义的编码规则对状态/事件进行编码,高效传输给外部显示模块,减少对调度性能的影响。状态/事件显示与记录部分,根据采集到的信息以直观的形式显示机载操作系统仿真器中各分区内任务的状态切换及触发事件,并记录其执行轨迹。
该方法的具体实施流程如下:
1)在任务状态切换位置插入软件传感器代码,与机载操作系统仿真器联编并生成可执行文件;
2)启动监控及记录模块,它作为管道服务器,首先创建并初始化管道,每个管道专门接收一个模块的状态-事件消息;
3)启动插装后的机载操作系统仿真器,这个过程就会同时启动其内部的状态-事件监控器;
3)监控器启动后,首先向管道服务器,即监控显示模块发出连接请求;成功建立连接后,监控器开始感知任务状态切换,推理触发事件,并向管道中发送状态-事件消息序列;
4)显示记录模块从管道中读取状态-事件序列,并将其显示在监控界面上,并记录下来。
具体实施步骤为:
1)内嵌软件传感器代码插入:为避免插装代码对机载操作系统仿真器的执行逻辑产生影响以及未来对新的监控需求的适应性,采用宏开关+条件编译方式插入内嵌软件传感器代码。其代码模板为:
在需要监控的情况下,只需打开__STATE_MONITOR_H__宏开关,即可监控系统任务状态的切换。
2)状态-事件序列推理及记录
由于机载操作系统仿真器任务状态切换对实时性要求较高,因此内嵌软件传感器代码仅完成状态感知,并在任务状态发生切换时用异步方式启动推理程序。推理程序被启动后,会根据自动推理触发当前状态转换的事件并记录到临时缓冲区。采用这种方式,避免了推理和记录功能代码影响机载操作系统仿真器的性能。
3)状态-事件序列传输
(1)状态-事件序列编码:
为避免影响机载操作系统仿真器的调度性能,需要尽量提取有效信息,完成状态-事件序列的传输。因此采用自定义的消息格式来压缩传输字节数,其编码格式如图3所示。
(2)状态-事件序列消息的压缩和传输
机载操作系统仿真器运行在Windows操作系统之下,采用Windows的管道机制将状态-事件序列消息输出给显示模块。为避免写管道对象过程中造成的内核陷入延迟,同时防止状态-转换事件丢失,在监控器中实现了一个消息缓冲队列。监控器监控到状态切换后,立即触发推理程序计算出模块号、分区号、任务号、转换事件编号、转换源状态、转换目标状态等信息,并编码为5字节的消息,放入消息缓冲队列。同时,有一个工作线程等待在这个消息缓冲队列上,只要有消息入队,就读取消息并通过管道发送给监控显示模块。采用这种消息缓冲机制,既避免了写管道的延迟影响到调度器的性能,又缓解了监控器发送调度事件序列和外部监控显示界面接收、解析消息的速度差异。状态-事件序列消息的压缩和传输过程如图3所示。
4)状态-事件序列的显示和记录
采用状态转换图的形式来直观的显示分区状态的转换和分区内任务的状态转换,这种方式非常有助于对任务状态序列的回放和分析。
采用状态和事件的交替序列来记录任务的执行轨迹,并保存到文本文件中,作为进一步的验证与测试的依据。
根据此执行轨迹,用户可以采用各种运行时验证工具验证机载应用程序的安全特性,或对机载操作系统仿真器与ARINC653规范的符合性进行测试。
本发明利用内嵌的软件传感器对机载分区操作系统仿真器的任务执行序列进行监控,在记录任务状态转换的同时,还可以得到触发任务状态转换的具体事件;采用直观的方式来显示任务的状态转换和触发事件,并基于记录任务的执行轨迹,对基于迹理论的运行时验证和符合性测试提供了直接的底层支撑。虽然采用了侵入性的监控代码插装,但根据测试,插装代码最多会引起20us的延迟,对机载操作系统仿真器的实时调度影响基本可以忽略不计。
Claims (3)
1.一种机载分区操作系统仿真器运行时监控方法,其特征在于:包括以下步骤;
步骤一 内嵌软件传感器代码插入:根据对机载操作系统仿真器代码的分析,机载操作系统仿真器符合ARINC653标准,找到任务状态切换代码;在这些任务状态切换代码中插入内嵌软件传感器代码;
步骤二 状态事件序列推理及记录:以机载分区操作系统规范ARINC653-Part1中对任务状态切换的触发事件的描述为依据,根据状态的切换以及机载操作系统仿真器的代码对触发状态转换的事件进行推理,推理逻辑用代码实现;然后将状态和事件组合成正确的序列,记录在临时缓存中;
步骤三 状态事件序列发送:将状态事件序列编码为位段,采用异步方式,通过Windows的管道机制将状态事件序列发送到外部监控显示与记录模块;
步骤四 状态事件序列显示与保存:根据状态事件编码规则,将状态事件序列解析并以状态转换图的形式直观地显示在监控界面上,同时按照状态事件的交替序列的形式保存到文本文件中。
2.根据权利要求1所述的一种机载分区操作系统仿真器运行时监控方法,其特征在于:所述机载操作系统仿真器代码,采用状态传感器代码记录分区内任务的状态切换,并用事件传感器代码记录触发本此状态切换的事件。
3.根据权利要求1所述的一种机载分区操作系统仿真器运行时监控方法,其特征在于:所诉监控的代码执行时间在20us以下。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711416088.5A CN109960623B (zh) | 2017-12-26 | 2017-12-26 | 一种机载分区操作系统仿真器运行时监控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711416088.5A CN109960623B (zh) | 2017-12-26 | 2017-12-26 | 一种机载分区操作系统仿真器运行时监控方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109960623A CN109960623A (zh) | 2019-07-02 |
CN109960623B true CN109960623B (zh) | 2022-09-20 |
Family
ID=67020442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711416088.5A Active CN109960623B (zh) | 2017-12-26 | 2017-12-26 | 一种机载分区操作系统仿真器运行时监控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109960623B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124927B (zh) * | 2019-12-25 | 2023-05-23 | 中国航空工业集团公司西安飞机设计研究所 | 一种多分区机载软件的测试方法 |
CN113778860B (zh) * | 2021-08-16 | 2023-11-28 | 北京仿真中心 | 基于模型检测的系统运行时验证方法、系统和计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186451A (zh) * | 2013-03-21 | 2013-07-03 | 中国人民解放军国防科学技术大学 | 一种具有故障预测能力的时序属性监控方法 |
CN103235756A (zh) * | 2013-04-22 | 2013-08-07 | 北京航空航天大学 | 一种面向嵌入式系统分区应用程序软件的仿真测试方法 |
EP2743830A1 (en) * | 2012-12-13 | 2014-06-18 | Eurocopter España, S.A. | Flexible data communication among partitions in integrated modular avionics |
CN105426258A (zh) * | 2014-09-15 | 2016-03-23 | 通用电气航空系统有限责任公司 | 在客户端与服务器之间通信的机制和方法 |
-
2017
- 2017-12-26 CN CN201711416088.5A patent/CN109960623B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2743830A1 (en) * | 2012-12-13 | 2014-06-18 | Eurocopter España, S.A. | Flexible data communication among partitions in integrated modular avionics |
CN103186451A (zh) * | 2013-03-21 | 2013-07-03 | 中国人民解放军国防科学技术大学 | 一种具有故障预测能力的时序属性监控方法 |
CN103235756A (zh) * | 2013-04-22 | 2013-08-07 | 北京航空航天大学 | 一种面向嵌入式系统分区应用程序软件的仿真测试方法 |
CN105426258A (zh) * | 2014-09-15 | 2016-03-23 | 通用电气航空系统有限责任公司 | 在客户端与服务器之间通信的机制和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109960623A (zh) | 2019-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Khan et al. | Dustminer: troubleshooting interactive complexity bugs in sensor networks | |
US10248863B2 (en) | Augemented video analytics for testing internet of things (IoT) devices | |
US7237151B2 (en) | Apparatus and method for trace stream identification of a processor reset | |
CN104714873B (zh) | 记录gui数据的方法和系统 | |
US10037254B2 (en) | Device, method and program for performing system testing | |
US10592376B2 (en) | Real-time hierarchical protocol decoding | |
CN109960623B (zh) | 一种机载分区操作系统仿真器运行时监控方法 | |
US20150006961A1 (en) | Capturing trace information using annotated trace output | |
US7325169B2 (en) | Apparatus and method for trace stream identification of multiple target processor events | |
CN106529304A (zh) | 一种安卓应用并发漏洞检测系统 | |
CN103353858A (zh) | 一种基于动作触摸模拟的自动化测试方法和装置 | |
CN104063245A (zh) | 基于垃圾回收的内存分析优化方法及系统 | |
CN107003828A (zh) | 图形指令的仪器化 | |
US8321604B2 (en) | Real-time USB class level decoding | |
CN100481093C (zh) | 验证目标系统的验证系统及其验证方法 | |
US20170351788A1 (en) | Automated checker generation | |
EP3121728A1 (en) | System and method for remotely debugging a device | |
Shea et al. | Scoped identifiers for efficient bit aligned logging | |
KR101174716B1 (ko) | 장비 검증 장치 및 시스템 | |
US7210072B2 (en) | Apparatus and method for trace stream identification of a pipeline flattener primary code flush following initiation of an interrupt service routine | |
CN111737155A (zh) | 一种芯片调试系统、方法、装置、设备及存储介质 | |
Xuandong et al. | Runtime verification of Java programs for scenario-based specifications | |
CN113778860B (zh) | 基于模型检测的系统运行时验证方法、系统和计算机设备 | |
US20040133824A1 (en) | Apparatus and method for identification of a new secondary code start point following a return from a secondary code execution | |
US7428666B2 (en) | Apparatus and method for trace stream identification of a pipeline flattener secondary code flush following a return to primary code execution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |