互斥算法模型检测.ppt

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
互斥算法模型检测

并发模型的验证(例子) * 互斥协议模型:示意图 x==0||t==0 t0 x=1,t=0 t1 t2 y==0||t==1 t3 x=0 s0 y=1,t=1 s1 s2 s3 y=0 初始状态 s0 t0 x=0 y=0 t=0 互斥协议模型(2) a=s0 b=t0 x=0 y=0 t=0 并发模型的验证 验证问题 Model 建模 并发模型(主程序) VVM VAR x: 0..1; y: 0..1; t: 0..1; INIT x=0; y=0; t=0; PROC p0: p0m(); p1: p1m(); SPEC AG(!(p0.a=s2p1.b=t2)); AG((!p0.a=s1|AF(p0.a=s2|p1.b=t2))(!p1.b=t1|AF(p0.a=s2|p1.b=t2))); AG((!p0.a=s1|AF(p0.a=s2))(!p1.b=t1|AF(p1.b=t2))); AG((!p0.a=s1|EF(p0.a=s2))(!p1.b=t1|EF(p1.b=t2))); 并发模型(进程模块说明1) MODULE p0m() VAR a: {s0,s1,s2,s3}; INIT a=s0; TRANS a=s0: (y,t,a):=(1,1,s1); a=s1(x=0|t=0): (a):=(s2); a=s1!(x=0|t=0): (a):=(s1); a=s2: (y,a):=(0,s3); a=s2: (a):=(s2); a=s3: (y,t,a):=(1,1,s1); 并发模型(进程模块说明2) MODULE p1m() VAR b: {t0,t1,t2,t3}; INIT b=t0; TRANS b=t0: (x,t,b):=(1,0,t1); b=t1(y=0|t=1): (b):=(t2); b=t1!(y=0|t=1): (b):=(t1); b=t2: (x,b):=(0,t3); b=t2: (b):=(t2); b=t3: (x,t,b):=(1,0,t1); 模型检测 ./verds -ck 1 me002.vvm VERSION: verds 1.42 - DEC 2012 FILE: me001.vvm PROPERTY: A G ! ((a = 2 ) (b = 2 )) bound = 1 time = 0 ---------- time = 0 bound = 2 time = 0 ---------- time = 0 bound = 3 time = 0 ---------- time = 0 bound = 4 time = 0 ---------- time = 0 bound = 5 time = 0 ---------- time = 0 bound = 6 time = 0 ---------- time = 0 CONCLUSION: TRUE (time=0) 模型检测结论 Property Conclusion AG(!(p0.a=2p1.a=2)) true AG((!p0.a=1|AF(p0.a=2|p1.a=2))(!p1.a=1|AF(p0.a=2|p1.a=2))) false AG((!p0.a=1|AF(p0.a=2))(!p1.a=1|AF(p1.a=2))) false AG((!p0.a=1|EF(p0.a=2))(!p1.a=1|EF(p1.a=2))) true 进程公平性说明 并发模型(主程序) VVM VAR x: 0..1; y: 0..1; t: 0..1; INIT x=0; y=0; t=0; PROC p0: p0m(); p1: p1m(); SPEC AG(!(p0.a=s2p1.b=t2)); AG((!p0.a=s1|AF(p0.a=s2|p1.b=t2))(!p1.b=t1|AF(p0.a=s2|p1.b=t2))); AG((!p0.a=s1|AF(p0.a=s2))(!p1.b=t1|AF(p1.b=t2))

文档评论(0)

wangsux + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档