- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
与SPIN相关的模型检测研究1)
魏巍1 曾庆凯2
1南京大学计算机软件新技术国家重点实验室,南京,210093
2南京大学计算机科学与技术系,南京,210093
摘要本文以SPIN为例,介绍模型检测的机制与原理。本文描述了模型检
测不可避免的问题——状态空间爆炸,并分析了偏序归约、启发式方法、压缩技
术和对违反活性属性检测的改进算法等解决方法,最后讨论了模型检测当前所
面临的一些主要问题,并指出了今后模型检测的主要发展方向。
关键词模型检测 状态空间爆炸偏序归约
一、引 言
目前,形式化验证主要有定理证明和模型检测两种方法。虽然定理证明能够严格证
明安全机制是否满足安全性需求,但是较高的数学要求和对问题的描述、推导、证明的困
难性,以及证明过程的非自动化,使其难以广泛应用。而相对于定理证明的这些不足之
处,模型检测则有专门的语言对系统建模、可用时序逻辑来方便的描述系统需求、检测的
过程完全自动化等优点。
SPINLlj是目前应用最广泛的模型检测工具之一,应用了许多优秀的算法,如偏序归
hash、压缩技术等,这些算法能弱化状态空间爆炸问
约、collapsecompression、bit-state
题。本文将以SPIN为例介绍模型检测的主要方法和实现。
本文结构:本文第二部分主要讲述模型检测的机制与原理;第三部分介绍状态空间爆
炸问题和目前的一些应对方法;第四部分讨论模型检测当前所面临的问题,并指出了模型
检测的发展方向;第五部分进行了总结。
二、模型检测的机制与原理
模型检测的过程一般可以分成如下几步:
1.系统建模
个元组
M一(S,I,L,R)
式中,S是状态的有限集合;I是S的子集,表示初始状态的集合;L:p29是一个标记映
项目。
·852·
射函数,把每个状态S映射到在S中为真的原子命题集合;R是SXS的子集,是状态转换
关系的集合。
一个Kripke结构M的一条运行路径是个一个无穷状态序列r—s。S2S3o··其中Si∈争
且S1∈I且对于任意i≥1有(,&+1)∈R。
动转化成kripke结构和状态自动机。
2.需求描述
根据逻辑关系和检测方法的不同,可以把需求属性分成两类:安全性属性(Safety
properties)和活性属性(1iveness
(assertions)和死锁(deadlock)等。活性属性则与系统的一些动态性,如活锁、互斥等需
求有关。
在SPIN中用了LTL来对需求进行描述。LTL的BNF定义如为
I上l
驴::一T Pl(—p)I(妒^驴)I(妒VP)I(9一垆)I
(脚)I(唧)I(唧)l(撕)l(册)I(妒脚)
Globallyp:G
p为真表示P在该状态和之后所有后继状态都为真。
EventuallyP:FP为真表示总能达到一个使P为真的状态。
Next
P:XP为真表示在下一个状态中,p为真。
Until U
P q:P q为真表示存在一条到口为真的状态的路径,且到达该状态之前P
一直为真。
LTL描述的系统需求属性,作为sPIN的另一个输入。
3.检测和验证
在系统建模和需求描述完成之后,接下来就是进行检测和验证了。针对需求的两种
类型有两种不同的检测方法:违反安全性属性检测和违反活性属性检测。
(1)违反安全性属性的检测
从初始状态开始,检查所遍历到的所有状态ST验证L(s)是否满足安全性属性。算法
主要有广度优先偏历搜索算法(BFS)、深度优先遍历搜索算法(DFS)和A。算法。把这几
个算法一般化便得到广义状态遍历算法t4,s]:
1)procedureGeneralStateExpandingAlgorithm(s)
2) Closed-,--黟;
3) 0p
文档评论(0)