一种基于tmsvl的c语言实时系统运行形式化分析方法

文档序号:6619864阅读:264来源:国知局
一种基于tmsvl的c语言实时系统运行形式化分析方法
【专利摘要】本发明公开了一种基于TMSVL的C语言实时系统运行形式化分析方法,所述方法使用TMSVL语言来描述C语言实时系统的性质,即描述待验证性质变量在特定时间的值,同时在C语言实时系统源代码中加入断言语句,通过执行加入断言语句后的C语言实时系统来获得待验证性质变量的信息,最终完成对C语言实时系统的运行形式化分析。本发明使得TMSVL验证C语言实时系统的性质更加容易,克服了人工建模工作量大、难度大以及容易出错的问题,同时相比于自动建模,本发明不需要建立复杂的转换器,提高了C语言实时系统形式化分析的效率。
【专利说明】-种基于TMSVL的C语言实时系统运行形式化分析方法

【技术领域】
[0001] 本发明主要涉及到形式化验证【技术领域】,具体涉及一种基于TMSVL的C语言实时 系统运行形式化分析方法。

【背景技术】
[0002] C语言作为世界上最流行、使用最广泛的的高级程序设计语言之一,如今已被大量 的运用在系统的设计开发上。C语言实时系统是指在实时系统的设计开发中使用了 C语言, 其包含使用C语言对整个实时系统进行设计开发和使用C语言对实时系统的某个模块进行 设计开发。C语言实时系统在现代已被广泛应用于军事、航天以及交通控制等相关领域。实 际应用中对C语言实时系统可靠性的要求很高,若一定的时间性质限制没有得到满足,则 会导致重大事故。因此保证C语言实时系统的正确性十分重要。而通过使用基于严格数学 基础的形式化方法对C语言实时系统进行建模和验证,可以解决C语言实时系统安全性和 可靠性问题。
[0003] 时序逻辑作为一种系统建模与验证工具,已广泛应用于软件工程、数字电路设计 等领域。时序逻辑主要有三大分支:线性时序逻辑(Linear Temporal Logic, LTL),分支 时序逻辑(Branching-time Logic)以及区间时序逻辑(Interval Temporal Logic,ITL)。 投影时序逻辑(Projection Temporal Logic, PTL)扩展了 ITL,实时投影时序逻辑(Timed Projection Temporal Logic,TPTL)是从PTL中派生出来的一种实时时序逻辑,Timed MSVL(Timed Modeling Simulation and Verification Language,TMSVL)是 TPTL 的可执行 子集,是一个集建模(Modeling)、仿真(Simulation)和验证(Verification)为一体的实时 时序逻辑程序设计语言。
[0004] TMSVL语言含有时间变量和时间约束区间,其在语义上支持量化时间建模,其中时 间是由时间变量模拟,时间控制由时间约束区间实现,利用该语言来描述需要建模的C语 言实时系统,得到系统的TMSVL模型。如果系统有需要验证的性质,则用TPTL描述该性质。 这样,系统的建模与性质的描述统一在TPTL逻辑框架内,并通过模型检测技术验证系统的 性质。
[0005] TMSVL克服现有C语言实时系统建模和验证方法逻辑框架不统一以及可靠性差的 缺点,是一种既能描述相对时间又能描述绝对时间的实时系统建模、仿真和验证语言。使 用TMSVL对C语言实时系统进行建模,有两种方式,第一种是人工建模,这种方式首先要对 C语言实时系统的总体技术方案进行深入的了解,然后将系统简化为TMSVL模型,这种建 模方法不仅工作量大、难度高,而且很容易出错,建模者往往要阅读大量相关参考资料,才 能建立合理的模型。即使模型建立成功,若原C语言实时系统发生变化,又需要重新构建 TMSVL模型。第二种方式是自动建模,这种方式是指,利用一种转换器把C语言源程序转换 成TMSVL程序,这种方式需要一个转换器,首先实现这个转换器的难度很高,其次,对于某 些C语言语句根本无法转换成TMSVL语句,因此,自动建模的适用范围非常小。对于上述使 用TMSVL建模的两种方式所出现的问题,尚无解决的有效方案。


【发明内容】

[0006] 针对现有技术的不足,本发明旨在提供一种基于TMSVL的C语言实时系统运行形 式化分析方法,使TMSVL验证C语言实时系统的性质更容易,相比于人工建模,克服了工作 量大、难度高以及容易出错的问题,相比于自动建模,本发明不需要建立复杂的转换器。
[0007] 为了实现上述目的,本发明采用如下技术方案:
[0008] -种基于TMSVL的C语言实时系统运行形式化分析方法,所述方法包括如下步 骤:
[0009] 步骤1,在所述C语言实时系统源代码中插入断言语句,形成一个加入断言语句后 的源代码程序;
[0010] 步骤2,利用C语言编译器对所述源代码程序进行编译,得到C语言实时系统的可 执行文件;
[0011] 步骤3,用TMSVL语言来描述待验证性质变量在特定时间点上应该处于的状态,例 如该待验证性质变量在某特定时间上应该大于某个值,从而形成一个TMSVL程序;
[0012] 步骤4, TMSVL监控器启动所述C语言实时系统的可执行文件,在执行所述可执行 文件过程中,所述断言语句记录所述待验证性质变量的实际信息;所述TMSVL监控器解释 执行所述TMSVL程序时通过一定的方式获取所述待验证性质变量的实际信息;
[0013] 步骤5,所述TMSVL监控器解释执行所述TMSVL程序并获得所述待验证性质变量的 实际信息后,将所述待验证性质变量的实际信息与使用TMSVL程序描述的待验证性质变量 应该处于的状态作对比,验证C语言实时系统的实时性质是否满足:
[0014] 若所述待验证性质变量的实际信息符合所述待验证性质变量应该处于的状态,则 判定为C语言实时系统的实时性质满足;否则,则判定为C语言实时系统的实时性质不满 足。
[0015] 需要说明的是,C语言实时系统是指在实时系统的设计开发中使用了 C语言,其包 含使用C语言对整个实时系统进行设计开发和使用C语言对实时系统的某个模块进行设计 开发。而所述TMSVL监控器是一种能够加载TMSVL程序并根据对TMSVL语法词法的分析解 释执行所述TMSVL程序的软件;另外,所述TMSVL监控器还负责所述可执行文件的启动。
[0016] 需要说明的是,所述断言语句为C语言语句或C语言函数。
[0017] 需要说明的是,所述待验证性质变量的实际信息包括所述待验证性质变量的名 称、值、值所占存储空间的大小以及值产生的时间。
[0018] 需要说明的是,所述步骤4中,所述C语言实时系统将所述断言语句记录的所述待 验证性质变量的信息传递给所述TMSVL监控器的方式有两种:
[0019] 通过文件的方式:在所述可执行文件执行的过程中,每当执行所述断言语句时,所 述断言语句将所述待验证性质变量的实际信息写入文本文件;在执行完毕后,所述TMSVL 监控器解释执行TMSVL程序时读取所述文本文件,获得待验证性质变量的实际信息。
[0020] 通过进程间通信的方式:所述C语言实时系统的可执行文件执行时作为一种进 程;解释执行所述TMSVL程序的TMSVL监控器作为另一个进程;所述TMSVL监控器启动所述 C语言实时系统的可执行文件的同时开始解释执行所述TMSVL程序,在执行的过程中,采用 进程间通信中的匿名管道方式,所述断言语句每次执行时把所述待验证性质变量的实际信 息写入匿名管道中,所述TMSVL监控器解释执行所述TMSVL程序时利用进程间通信相关语 句对所述匿名管道实施监控,从所述匿名管道中获取所述待验证性质变量的实际信息。
[0021] 本发明中断言语句传递给TMSVL监控器的待验证性质变量的实际信息格式如表1 所示:
[0022] 表 1
[0023] 格式:
[0024]

【权利要求】
1. 一种基于TMSVL的C语言实时系统运行形式化分析方法,其特征在于,所述方法包括 如下步骤: 步骤1,在所述C语言实时系统源代码中插入断言语句,形成一个加入断言语句后的源 代码程序; 步骤2,对所述加入断言语句后的源代码程序进行编译,得到C语言实时系统的可执行 文件; 步骤3,用TMSVL语言来描述待验证性质变量在特定时间点上应该处于的状态,形成一 个TMSVL程序; 步骤4, TMSVL监控器启动所述C语言实时系统的可执行文件,在执行的过程中,所述断 言语句记录所述待验证性质变量的实际信息;所述TMSVL监控器解释执行所述TMSVL程序 时通过一定的方式获取所述待验证性质变量的实际信息; 步骤5,所述TMSVL监控器解释执行所述TMSVL程序并获取到所述待验证性质变量的实 际信息后,与所述TMSVL语言描述的待验证性质变量应该处于的状态作对比,验证C语言实 时系统的实时性质是否满足: 若所述待验证性质变量的实际状态信息符合所述待验证性质变量应该处于的状态,则 判定为C语言实时系统的实时性质满足;否则,则判定为C语言实时系统的实时性质不满 足。
2. 根据权利要求1所述的一种基于TMSVL的C语言实时系统运行形式化分析方法,其 特征在于,所述断言语句为C语言语句或C语言函数。
3. 根据权利要求1所述的一种基于TMSVL的C语言实时系统运行形式化分析方法,其 特征在于,所述待验证性质变量的实际信息包括所述待验证性质变量的名称、值、值所占存 储空间的大小以及值产生的时间。
4. 根据权利要求1所述的一种基于TMSVL的C语言实时系统运行形式化分析方法,其 特征在于,所述步骤4中,所述断言语句将所述待验证性质变量的实际信息输出到文本文 件中,所述TMSVL监控器解释执行所述TMSVL程序时从所述文本文件中获取所述待验证性 质变量的实际信息,具体实施步骤为: 步骤4. 1,所述TMSVL监控器启动所述C语言实时系统的可执行文件; 步骤4. 2,在执行的过程中,当执行到所述断言语句时,所述断言语句将所述待验证性 质变量的实际信息记录下来并输出至文本文件中; 步骤4. 3,执行过程完成后,所述TMSVL监控器开始解释执行所述TMSVL程序,并从所述 文本文件中获取所述待验证性质变量的实际信息。
5. 根据权利要求1所述的一种基于TMSVL的C语言实时系统运行形式化分析方法,其 特征在于,所述步骤4中,所述断言语句将所述待验证性质变量的实际信息记录下来,并通 过进程间通信中的匿名管道的方式传递给所述TMSVL监控器,具体步骤如下: 步骤4. 1,利用TMSVL监控器启动所述C语言实时系统的可执行文件,与此同时所述 TMSVL监控器开始解释执行所述TMSVL程序; 步骤4. 2,执行的过程中,每执行一次所述断言语句,所述断言语句就把所述待验证性 质变量的实际信息写入匿名管道中,所述TMSVL监控器解释执行所述TMSVL程序时利用进 程间通信相关语句对所述匿名管道实施监控,从所述匿名管道中获取所述待验证性质变量 的实际信息。
【文档编号】G06F11/36GK104111889SQ201410330453
【公开日】2014年10月22日 申请日期:2014年7月11日 优先权日:2014年7月11日
【发明者】王小兵, 苏多铎, 段振华, 赵亮, 田聪, 张南 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1