AADL软件容错系统建模与评估_杨志义
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 容错系统模型设计
2.1 应用需求背景
在控制系统中,当发生软硬件错误时,为了能立即从错误 状态中恢复过来,加强系统的可靠性,常采用冗余的方法。文 献 [4] 中提出的 ATC 子系统,本文对 ATC 模型进行了简化,
中华测控网 chinamca.com
· 780 ·
计算机测量与控制
第 17 卷
将系统分为两部分 :飞机子系统和雷达子系统。 飞机子系统通过中间件发送数据给雷达子系统,雷达子系
软件错误状态转换和 AADL 错误模型的对应关系如表 1
所示。
表 1 状态转换和 AADL Error Model 对应关系
状态
error state
发生事件
error event
错误传播
out error propagation
4 软件AADL错误模型
由图 2 可看出,软件错误状态共有 7 种和 11 种迁移,以
发生错误P1 错误状态
检测到错误P2
10ms
Comp1
10ms
Comp2
flight_process
Comp1_mode
Comp2_mode
10ms
OFra Baidu bibliotekserver
10ms
Comp1
Comp1_mode Comp2_mode
10ms
Comp2
10ms
Observer
P3
检测错误
P4
其它 构件
P5 没有发现错误
软件工程技术
文章编号 :1671-4598(2009)04-0779-04
计算机测量与控制.2009.17(4) Computer Measurement & Control
中图分类号 :TH873.7
文献标识码 :A
· 779 ·
AADL软件容错系统建模与评估
杨志义,张琛雨,董云卫
(西北工业大学 计算机学院,陕西 西安 710072)
当前错误 是明显的
发现错误 P6
错误处理
AADL软件容错系统
middle_thread middle_process
图3 AADL软件容错系统
P10
重启
P11
P7 永久性错 误处理P9
故障状态
暂时性错 误处理P8
图2 软件错误状态模型
当主控构件发生错误时,可在启动备用构件的同时对其进 行修复。但如果修复失败,即构件发生故障,则会降低系统的 冗余度,使系统处于不可靠状态,因为如果备用构件再发生错 误,系统就会立即崩溃。当系统出现这种情况时,认为系统发
AADL 可以使用三种模式进行描述 :文本、图形和 XML, 且这三种模式之间可以相互转化。由 AADL 生成的模型可 生 成 C 和 Ada 代 码。AADL 可 与 UML 结 合, 现 已 有 针 对 UML1.4 和 UML2.0 的 AADL 开发草案,但真正标准还要再晚 一些时候才能出来。在扩展方面,AADL 有 Error Model Annex 和 Arinc 653 Annex 两种模式,只要符合 Annex 规范,用户也 可以创建自己的扩展库。
飞机程序 连接
监测部分
连接
主控构件
备用构件
雷达程序 连接
监测部分
连接
主控部件
备用构件
软件子系统
中间件
图1 软件系统结构
2.2 软件的错误状态分析 在系统运行过程中,针对软件错误 [1],建立相应的软件错
误模型,如图 2 所示。
正常
生一次故障。 软件错误模型中,软件最初时处于正常状态,其会以 P1
的概率发生错误而转到错误状态 ;错误状态下,监测部件以 P2 的概率监测到错误的发生,转到检测错误状态,开始检测错误 所在,分别以 P4 和 P3 的概率发现错误所在和没有发现错误所 在 ;发现错误后,有 P6 的概率当前的错误是可以处理的,可 以处理的错误又分为暂时性错误和永久性错误 [2] ;如果没有发 现错误,程序还将继续运行,当前的错误会通过对外端口传播 给其它程序,定义对外错误传播概率为 P5,但如果错误是明 显的,即当前错误已经导致了程序明显不正常,则直接转移到 重启状态 ;在重启状态,如果重启失败,则发生软件故障,系 统崩溃,但概率非常低,定义为 P11。由于软件的重启较耗时, 在主控构件重启过程中,监测部件使用备用构件替换。
态认证的规约,可用于软件任务和通讯结构的描述以及分布式 多处理器硬件结构的描述。它包含了所有 ADL[2] 的标准概念 : 构件、描述构件间接口的连接器和构件间的连接。AADL 构件 类型分为三类 :软件构件(进程、线程、线程组、子程序和数 据)、硬件构件(处理器、总线、内存和设备)和一个系统构件。 构件间通过端口,子程序调用和共享数据进行通讯。
Key words: AADL; reliability; GSPN; ATC
0 引言
系统的冗余设计是提高系统可靠性的主要手段,在嵌入 式系统设计时,对系统冗余失效及其错误进行建模是件困难 的事。为了描述软件错误以及其传播方式,本文基于 AADL (Architecure Analysis and Design Language)对系统模型中的错 误进行建模,将 AADL 模型转换成 GSPN 模型,对系统的软 件故障进行评估 [1]。
1 AADL及相关研究
AADL 是 2004 年 11 月由自动化工程师协会发布的航空标 准 AS5506,又叫结构分析设计语言。AADL 基于模型技术对 系统进行建模,主要是对实时、嵌入式、容错、安全分区和动
收稿日期 :2008-09-03 ; 修回日期 :2008-10-10。 基金项目 :国家 863 计划重大专项项目(2007AA010304);国家自然 科学基金项目(60736017)。 作者简介 :杨志义(1952-),男,教授,主要从事计算机应用方向的研究。 董云卫(1968-),男 , 教授,主要从事嵌入式软件设计与验证和嵌入 式软件可靠性测试方向的研究。
S1
S2
S3
S4
S5
S6
S7
P1
P2
P3
P4
P5
P7
P6
P8
P9
P10
P11
将错误归纳为四种 :暂时性错误、永久性错误、没有发现错误 且错误是明显的、没有发现错误且错误是隐藏的。
中华测控网 chinamca.com
第4期
杨志义,等:AADL软件容错系统建模与评估
· 781 ·
S1 ~ S7 对应其对应软件的 7 种错误状态,P1 ~ P11 对应 11
种迁移,转换关系归纳如表 2 所示,A->B 表示第一列中的状
态向第一行状态的转移。
表 2 软件错误状态转换关系
A->B S1 S2 S3 S4 S5 S6 S7
与此同时,为了提高嵌入式系统的开发效率、降低开发成 本,系统设计需要综合的设计方法和验证、评测工具描述系 统的规约和系统的架构,并在设计过程中进行系统可靠性分 析。国际自动化工程师学会制定一套针对系统结构的建模的标 准 AADL,该标准已被证明是高效的。为了评估模型的可靠 性,国际自动化工程师学会又补充开发了 AADL Error Model Annex,本文利用 AADL 的模型机制和 Error Model 对容错系 统进行了建模分析。
( College of Computer, Northwestern Polytechnical University, Xi an 710072,China)
Abstract: This paper presents a method to solve the problem of reliability of the fault tolerant of the software system based on AADL. After modeling the software system, we anatomy the error states and the error propagations, and build the AADL software error model, then which is converted to GSPN (General Stochastic Petri Net) according to the basic rules. By calculating the GSPN model, we can assess the reliability of the software fault tolerant system. This paper use ATC (Air Traffic Control System) as the experiment background, according to the experience data assuming some components’ failure rate, and receiving a good result.
摘要 :提出了一种解决软件容错系统的可靠性评估方法,该方法基于 AADL,对嵌入式软件系统进行建模,详细分析了软件系统内部各种构 件的各种错误状态和其之间的错误传播,构建了 AADL 软件系统错误模型,并根据基本的转换规则将其转化为广义随机 Petri 网模型,使用现有 工具对其进行了计算,从而实现了软件容错系统的可靠性评估 ;以航空交通控制 (ATC) 为应用场景进行实验,根据经验数据适当的假设了部分构 件的失效率,收到了较好效果。
统通过中间件接收数据并进行相应的处理,中间件实现两者之 间的数据转发。建模时根据各部件实现的功能,将飞机子系统 内部结构归纳为三部分 :主控构件、备用构件和监测部件。主 控构件和备用构件同时执行飞机程序,但只有主控构件发挥控 制作用。监测部件周期性地接收主控构件和备用构件送来的数 据,并以此判断其是否发生错误。当监测到主控构件发生错误, 则根据设定好的软件错误状态进行处理。重启主控构件后,由 备用构件发挥控制作用,这时备用构件相应的成为主控构件, 而原来的主控构件经过重启后,成为备用构件。由于监测部件 的内部实现非常简单,发生故障的概率非常小,故接受这种风 险。雷达程序内部结构与飞机程序类似,主控构件和备用部分 都接收从中间件发送过来的数据并进行处理,但只有主控构件 将处理后的数据发送给其它部分,本文中雷达程序中的其它部 分不是建模的重点且并不影响本部分模型,故在模型中省略。
3 基于AADL的系统可靠性模型
飞机程序、中间件和雷达程序在实际系统中分别为一组 进程,对应使用 AADL 中的进程表示,定义为 flight_process、 radar_process 和 middle_process。 飞 机 程 序 和 雷 达 程 序 中 的 具 体执行单元 :主控构件、备用部分和监测部分使用 AADL 中 的线程表示 , 定义为 :Comp1、Comp2 和 Observer。飞机程序 和雷达程序的主控构件和备用部分虽然可同时并行运行,但 不可同时发挥控制作用,故规定两个进程分别有两个状态 : Comp1_mode、Comp2_mode,Comp1_mode 状 态 下 Comp1 发 挥 控制作用,Comp2_mode 状态下 Comp2 发挥控制作用,控制作 用主要体现在当前状态下线程构件与上级进程的连接上,即虽 然 Comp1 和 Comp2 同时进行运算,但只有起控制作用的构件可 将数据送出。Observer 根据系统设计,周期性的监测 Comp1 和 Comp2 是否发生了错误,如果发生了错误,则根据 2.2 节进行错 误处理。如果错误需要软件重启,Observer 会通知 flight_process 和 radar_process 进行状态的转换。AADL 模型结构如图 3 所示。
关键词 :AADL ;可靠性 ;广义随机 Petri 网 ;ATC
Modeling and Assessment of Reliability of a Software Fault Tolerant System Using AADL
Yang Zhiyi, Zhang Chenyu, Dong Yunwei
AADL 主要有可扩展性、降低系统开发成本和使用系统工 程方法建模软件密集型系统的特点。针对 AADL 的开发工具 主要有 OSATE、Stood、ADeS 和 Cheddar,目前使用最多的为 OSATE,它是一个开源的工具,且已经实现了 AADL 语义和 语法的检查等功能。虽然目前已有很多 AADL 工具开发项目, 但是目前还是没有开放源代码工具来对 AADL 规约、可靠性 和性能进行分析 [3]。
2.1 应用需求背景
在控制系统中,当发生软硬件错误时,为了能立即从错误 状态中恢复过来,加强系统的可靠性,常采用冗余的方法。文 献 [4] 中提出的 ATC 子系统,本文对 ATC 模型进行了简化,
中华测控网 chinamca.com
· 780 ·
计算机测量与控制
第 17 卷
将系统分为两部分 :飞机子系统和雷达子系统。 飞机子系统通过中间件发送数据给雷达子系统,雷达子系
软件错误状态转换和 AADL 错误模型的对应关系如表 1
所示。
表 1 状态转换和 AADL Error Model 对应关系
状态
error state
发生事件
error event
错误传播
out error propagation
4 软件AADL错误模型
由图 2 可看出,软件错误状态共有 7 种和 11 种迁移,以
发生错误P1 错误状态
检测到错误P2
10ms
Comp1
10ms
Comp2
flight_process
Comp1_mode
Comp2_mode
10ms
OFra Baidu bibliotekserver
10ms
Comp1
Comp1_mode Comp2_mode
10ms
Comp2
10ms
Observer
P3
检测错误
P4
其它 构件
P5 没有发现错误
软件工程技术
文章编号 :1671-4598(2009)04-0779-04
计算机测量与控制.2009.17(4) Computer Measurement & Control
中图分类号 :TH873.7
文献标识码 :A
· 779 ·
AADL软件容错系统建模与评估
杨志义,张琛雨,董云卫
(西北工业大学 计算机学院,陕西 西安 710072)
当前错误 是明显的
发现错误 P6
错误处理
AADL软件容错系统
middle_thread middle_process
图3 AADL软件容错系统
P10
重启
P11
P7 永久性错 误处理P9
故障状态
暂时性错 误处理P8
图2 软件错误状态模型
当主控构件发生错误时,可在启动备用构件的同时对其进 行修复。但如果修复失败,即构件发生故障,则会降低系统的 冗余度,使系统处于不可靠状态,因为如果备用构件再发生错 误,系统就会立即崩溃。当系统出现这种情况时,认为系统发
AADL 可以使用三种模式进行描述 :文本、图形和 XML, 且这三种模式之间可以相互转化。由 AADL 生成的模型可 生 成 C 和 Ada 代 码。AADL 可 与 UML 结 合, 现 已 有 针 对 UML1.4 和 UML2.0 的 AADL 开发草案,但真正标准还要再晚 一些时候才能出来。在扩展方面,AADL 有 Error Model Annex 和 Arinc 653 Annex 两种模式,只要符合 Annex 规范,用户也 可以创建自己的扩展库。
飞机程序 连接
监测部分
连接
主控构件
备用构件
雷达程序 连接
监测部分
连接
主控部件
备用构件
软件子系统
中间件
图1 软件系统结构
2.2 软件的错误状态分析 在系统运行过程中,针对软件错误 [1],建立相应的软件错
误模型,如图 2 所示。
正常
生一次故障。 软件错误模型中,软件最初时处于正常状态,其会以 P1
的概率发生错误而转到错误状态 ;错误状态下,监测部件以 P2 的概率监测到错误的发生,转到检测错误状态,开始检测错误 所在,分别以 P4 和 P3 的概率发现错误所在和没有发现错误所 在 ;发现错误后,有 P6 的概率当前的错误是可以处理的,可 以处理的错误又分为暂时性错误和永久性错误 [2] ;如果没有发 现错误,程序还将继续运行,当前的错误会通过对外端口传播 给其它程序,定义对外错误传播概率为 P5,但如果错误是明 显的,即当前错误已经导致了程序明显不正常,则直接转移到 重启状态 ;在重启状态,如果重启失败,则发生软件故障,系 统崩溃,但概率非常低,定义为 P11。由于软件的重启较耗时, 在主控构件重启过程中,监测部件使用备用构件替换。
态认证的规约,可用于软件任务和通讯结构的描述以及分布式 多处理器硬件结构的描述。它包含了所有 ADL[2] 的标准概念 : 构件、描述构件间接口的连接器和构件间的连接。AADL 构件 类型分为三类 :软件构件(进程、线程、线程组、子程序和数 据)、硬件构件(处理器、总线、内存和设备)和一个系统构件。 构件间通过端口,子程序调用和共享数据进行通讯。
Key words: AADL; reliability; GSPN; ATC
0 引言
系统的冗余设计是提高系统可靠性的主要手段,在嵌入 式系统设计时,对系统冗余失效及其错误进行建模是件困难 的事。为了描述软件错误以及其传播方式,本文基于 AADL (Architecure Analysis and Design Language)对系统模型中的错 误进行建模,将 AADL 模型转换成 GSPN 模型,对系统的软 件故障进行评估 [1]。
1 AADL及相关研究
AADL 是 2004 年 11 月由自动化工程师协会发布的航空标 准 AS5506,又叫结构分析设计语言。AADL 基于模型技术对 系统进行建模,主要是对实时、嵌入式、容错、安全分区和动
收稿日期 :2008-09-03 ; 修回日期 :2008-10-10。 基金项目 :国家 863 计划重大专项项目(2007AA010304);国家自然 科学基金项目(60736017)。 作者简介 :杨志义(1952-),男,教授,主要从事计算机应用方向的研究。 董云卫(1968-),男 , 教授,主要从事嵌入式软件设计与验证和嵌入 式软件可靠性测试方向的研究。
S1
S2
S3
S4
S5
S6
S7
P1
P2
P3
P4
P5
P7
P6
P8
P9
P10
P11
将错误归纳为四种 :暂时性错误、永久性错误、没有发现错误 且错误是明显的、没有发现错误且错误是隐藏的。
中华测控网 chinamca.com
第4期
杨志义,等:AADL软件容错系统建模与评估
· 781 ·
S1 ~ S7 对应其对应软件的 7 种错误状态,P1 ~ P11 对应 11
种迁移,转换关系归纳如表 2 所示,A->B 表示第一列中的状
态向第一行状态的转移。
表 2 软件错误状态转换关系
A->B S1 S2 S3 S4 S5 S6 S7
与此同时,为了提高嵌入式系统的开发效率、降低开发成 本,系统设计需要综合的设计方法和验证、评测工具描述系 统的规约和系统的架构,并在设计过程中进行系统可靠性分 析。国际自动化工程师学会制定一套针对系统结构的建模的标 准 AADL,该标准已被证明是高效的。为了评估模型的可靠 性,国际自动化工程师学会又补充开发了 AADL Error Model Annex,本文利用 AADL 的模型机制和 Error Model 对容错系 统进行了建模分析。
( College of Computer, Northwestern Polytechnical University, Xi an 710072,China)
Abstract: This paper presents a method to solve the problem of reliability of the fault tolerant of the software system based on AADL. After modeling the software system, we anatomy the error states and the error propagations, and build the AADL software error model, then which is converted to GSPN (General Stochastic Petri Net) according to the basic rules. By calculating the GSPN model, we can assess the reliability of the software fault tolerant system. This paper use ATC (Air Traffic Control System) as the experiment background, according to the experience data assuming some components’ failure rate, and receiving a good result.
摘要 :提出了一种解决软件容错系统的可靠性评估方法,该方法基于 AADL,对嵌入式软件系统进行建模,详细分析了软件系统内部各种构 件的各种错误状态和其之间的错误传播,构建了 AADL 软件系统错误模型,并根据基本的转换规则将其转化为广义随机 Petri 网模型,使用现有 工具对其进行了计算,从而实现了软件容错系统的可靠性评估 ;以航空交通控制 (ATC) 为应用场景进行实验,根据经验数据适当的假设了部分构 件的失效率,收到了较好效果。
统通过中间件接收数据并进行相应的处理,中间件实现两者之 间的数据转发。建模时根据各部件实现的功能,将飞机子系统 内部结构归纳为三部分 :主控构件、备用构件和监测部件。主 控构件和备用构件同时执行飞机程序,但只有主控构件发挥控 制作用。监测部件周期性地接收主控构件和备用构件送来的数 据,并以此判断其是否发生错误。当监测到主控构件发生错误, 则根据设定好的软件错误状态进行处理。重启主控构件后,由 备用构件发挥控制作用,这时备用构件相应的成为主控构件, 而原来的主控构件经过重启后,成为备用构件。由于监测部件 的内部实现非常简单,发生故障的概率非常小,故接受这种风 险。雷达程序内部结构与飞机程序类似,主控构件和备用部分 都接收从中间件发送过来的数据并进行处理,但只有主控构件 将处理后的数据发送给其它部分,本文中雷达程序中的其它部 分不是建模的重点且并不影响本部分模型,故在模型中省略。
3 基于AADL的系统可靠性模型
飞机程序、中间件和雷达程序在实际系统中分别为一组 进程,对应使用 AADL 中的进程表示,定义为 flight_process、 radar_process 和 middle_process。 飞 机 程 序 和 雷 达 程 序 中 的 具 体执行单元 :主控构件、备用部分和监测部分使用 AADL 中 的线程表示 , 定义为 :Comp1、Comp2 和 Observer。飞机程序 和雷达程序的主控构件和备用部分虽然可同时并行运行,但 不可同时发挥控制作用,故规定两个进程分别有两个状态 : Comp1_mode、Comp2_mode,Comp1_mode 状 态 下 Comp1 发 挥 控制作用,Comp2_mode 状态下 Comp2 发挥控制作用,控制作 用主要体现在当前状态下线程构件与上级进程的连接上,即虽 然 Comp1 和 Comp2 同时进行运算,但只有起控制作用的构件可 将数据送出。Observer 根据系统设计,周期性的监测 Comp1 和 Comp2 是否发生了错误,如果发生了错误,则根据 2.2 节进行错 误处理。如果错误需要软件重启,Observer 会通知 flight_process 和 radar_process 进行状态的转换。AADL 模型结构如图 3 所示。
关键词 :AADL ;可靠性 ;广义随机 Petri 网 ;ATC
Modeling and Assessment of Reliability of a Software Fault Tolerant System Using AADL
Yang Zhiyi, Zhang Chenyu, Dong Yunwei
AADL 主要有可扩展性、降低系统开发成本和使用系统工 程方法建模软件密集型系统的特点。针对 AADL 的开发工具 主要有 OSATE、Stood、ADeS 和 Cheddar,目前使用最多的为 OSATE,它是一个开源的工具,且已经实现了 AADL 语义和 语法的检查等功能。虽然目前已有很多 AADL 工具开发项目, 但是目前还是没有开放源代码工具来对 AADL 规约、可靠性 和性能进行分析 [3]。