/usr/bin/iSpin: 第 3 行:usr libexec docker: wish: 未找到

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Access denied | linux.die.net used Cloudflare to restrict access
Please enable cookies.
What happened?
The owner of this website (linux.die.net) has banned your access based on your browser's signature (3e3f7b51ffb26d24-ua98).您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
第6章-协议验证工具.ppt 24页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
你可能关注的文档:
··········
··········
第 6 章 协议验证工具 内容提要 SPIN SPIN(Simple Promela Interpreter)是一种适用于分布式软件系统的形式化验证的开源软件工具:用C语言开发的模型检查工具 由贝尔实验室的计算机科学研究中心的形式化方法与验证小组于1980年开始开发的,1991年正式对外发布。 1995年引入了偏序简约和线性时序逻辑转换使得SPIN的功能进一步扩大。 2001年推出的SPIN4.0版本支持C代码的植入,应用的灵活性进一步增强。 在随后的2003年推出的SPIN4.1版本加入了深度优先搜索算法,更是使得SPIN的发展上了一个新台阶。 SPIN SPIN的开者者Gerard J. Holzmann获得了ACM 2001年度软件系统奖(Software Systems Award) 2002年4月份在多伦多颁发此奖时,称赞SPIN为:“将先进理论的验证方法用于大型和高度复杂的软件系统的验证中”、“SPIN系统有着非常聪明的查找技术,因为它不但可以在有限的内存空间中快速的对软件进行检测,而且它可以保证程序在按照它们原有的工作方式下被检测。”
最著名的免费的协议验证工具,应用非常广泛,每年均会举办一个以SPIN为主题的研讨会http://spinroot.com/spin/Workshops/index.html SPIN SPIN特点 SPIN对用Promela语言描述的网络协议设计规格说明(Speciifcation)的逻辑一致性进行检验,并报告系统中出现的死锁、无效的循环、未定义的接收和标记不完全等情况
SPIN无需构建一个全局的状态图或者Kripke结构,而可以根据需要生成系统自动机的部分状态进行检验(on-the-fly技术) 可以将SPIN作为一个完整的LTL(Linear Temporal Logic)模型检验系统来使用
SPIN支持同步和异步两种通信方式
对于给定的一个使用PROLEMA描述的协议系统,SPIN可以对其执行任意的模拟,也可以生成一个C代码程序,然后对该系统的正确性进行有效的检验
适于不同规模的系统的验证 内容提要 PROMELA语言 在SPIN中,将描述协议实体间所有交互过程的协议描述称为验证模型(validation model),而将描述验证模型的语言称为PROMELA (Protocol/Process Meta Language)
PROMELA是一种类似于C程序设计语言的形式描述语言,它可以方便地描述形式化验证模型中的系统的各种行为。 一个用PROMELA描述的协议验证模型由三类对象构成: 进程(processes)、报文通道(message channels)、状态变量(state variables) 所有进程被定义为全局对象,而报文通道和状态变量则是进程使用的全局或局部数据。 实际上,验证模型相当于一个前面所述的有限状态机
PROMELA语言 有关语言的详细内容参考文献[Holz91]的第5章和第6章、以及本书的第6章。 内容提要 SPIN安装 Spin验证器有两种版本:windows版和Linux版,且两个版本均有相应的图形框架支持,前者使用jspin或xspin,后者使用ispin实现。
jSpin采用基于java开发的可视化框架,可直接运行于windows平台,但其没有图形化的仿真工具,无法直观看到协议运行的过程。 XSpin运行于Cygwin平台上,利用类UNIX的命令行方式启动。Xspin启动成功后仍然可以使用图形化的操作方式。
Linux下安装 编译安装Linux平台下的spin
在spin官网(http://www.spinroot.com)下载最新版的Linux平台的spin源代码(本实验使用的是spin 6.10:spin610.tar.gz),解压到指定文件夹,进入src目录,make进行编译。   [如果编译时发现错误“Errors: byacc not found”,这是由于spin的编译器用到了byacc,在spin官网上很容易找到该编译器,下载其源码,编译后将生成的byacc拷贝到/usr/bin目录下(主要是免去修改用户路径),然后再次编译spin,生成可执行文件spin,同样将其拷贝到/usr/bin目录下。]
Linux下安装 编译安装Linux平台下的spin
安装图形框架ispin :进入源码下的iSpin目录,将ispin.tcl的第3行修改为exec wish “$0” -- $*,如左图所示。指明用wish来运行图形框架(如果原Linux未安装wish,在Ubuntu下可使用apt-get install wish命令来安装)修改完成后更改ispin.tcl权限(chmod 777 ispin.tcl
正在加载中,请稍后...Posts - 92,
Articles - 4,
Comments - 28
记录和总结web开发技术的点点滴滴...
15:23 by wish123, ... 阅读,
php不支持多线程,但是我们可以把问题转换成&多进程&来解决。由于php中的pcntl_fork只有unix平台才可以使用,所以本文尝试使用popen来替代。&&下面是一个例子:&&被并行调用的子程序:
if($argc==1){&
&&&&&&&&&echo("argv\n");&
$arg&=&$argv[1];&&&&&
for($i=0;&$i&10;&$i++)&
echo($i.".1.".time()."&exec&$arg&\n");&
if($arg=='php2')&
sleep(1);&
echo($i.".2.".time()."&exec&$arg&\n");&
sleep(1);&
sleep(1);&
----------------------------主调用者程序,由他调用子进程,同时并发的收集子程序的输出&
error_reporting(E_ALL);&
$handle1&=&popen('php&sub.php&php1',&'r');&
$handle2&=&popen('php&sub.php&php2',&'r');&
$handle3&=&popen('php&sub.php&php3',&'r');&
echo&"'$handle1';&"&.&gettype($handle1)&.&"\n";&
echo&"'$handle2';&"&.&gettype($handle2)&.&"\n";&
echo&"'$handle3';&"&.&gettype($handle3)&.&"\n";&
while(!feof($handle1)&||&!feof($handle2)&||&!feof($handle3)&){&
$read&=&fgets($handle1);&
$read&=&fgets($handle2);&
$read&=&fgets($handle3);&
pclose($handle1);&
pclose($handle2);&
pclose($handle3);&
-------------------
下面是我机器上的输出:
& php exec.php'Resource id #4'; resource'Resource id #5'; resource'Resource id #6'; resource0.1. exec php10.1. exec php20.1. exec php31.1. exec php10.2. exec php21.1. exec php32.1. exec php11.1. exec php22.1. exec php33.1. exec php11.2. exec php23.1. exec php34.1. exec php12.1. exec php24.1. exec php35.1. exec php12.2. exec php25.1. exec php36.1. exec php13.1. exec php26.1. exec php37.1. exec php13.2. exec php27.1. exec php38.1. exec php14.1. exec php28.1. exec php39.1. exec php14.2. exec php29.1. exec php35.1. exec php25.2. exec php26.1. exec php26.2. exec php27.1. exec php27.2. exec php28.1. exec php28.2. exec php29.1. exec php29.2. exec php2
**总结:**
**主程序循环等待子进程, 通过fgets或fread 把子进程的输出获取出来 , 从时间戳上看,的确实现了并发执行。**&&-----------------------------------------------改进:&&*& popen打开的句柄是单向的,如果需要向子进程交互,可以使用proc_open*& 使用数组和子函数代替while(!feof($handle1) || !feof($handle2) || !feof($handle3) )这种龌龊的写法*& 用fread一次把子进程已经产生的输出取完,而不是每次一行。
这是另一个改进:一个并发执行shell任务的调度者,本程序读取一个任务文件,把里面的每行命令并发执行, 可以设置同时存在的子进程数目:
include("../common/conf.php");&
include("../common/function.php");&
$exec_number&=&40&;&
if($argc==1){&
&&&&&&&&&echo("argv\n");&
$taskfile&=&$argv[1];&
$tasklist&=&file($taskfile);&
$tasklist_len&=&count($tasklist);&
$tasklist_pos&=&0;&
$handle_list&=&array();&
while(1){&
&&&&&&&&&if($exec_number&&&count($handle_list)&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$tasklist_pos&&&$tasklist_len)&
&&&&&&&&&{&
&&&&&&&&&&&&&&&&&for($i=$tasklist_&$i&$tasklist_&)&
&&&&&&&&&&&&&&&&&&&&&{&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$command&=&$tasklist[$i]&;&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$handle_list[]&=&popen($command&,&"r"&);&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&tolog("begin&task&\t&".$tasklist[$i]);&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$i++;&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if($exec_number&==&count($handle_list))&&
&&&&&&&&&&&&&&&&&&&&&}&
&&&&&&&&&&&&&&&&&&&&&$tasklist_pos&=&$i;&
&&&&&&&&&}&
&&&&&&&&&if(0&==&count($handle_list))&
&&&&&&&&&{&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&}&
&&&&&&&&&$end_handle_keys&=&array();&
&&&&&&&&&foreach($handle_list&as&$key&=&&$handle)&
&&&&&&&&&{&
&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&$str&=&fread($handle,&65536);&
&&&&&&&&&&&&&&&&&&&&&echo($str);&
&&&&&&&&&&&&&&&&&&&&&if(feof($handle))&
&&&&&&&&&&&&&&&&&&&&&{&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$end_handle_keys[]&=&$&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&pclose($handle);&
&&&&&&&&&&&&&&&&&&&&&}&
&&&&&&&&&}&
&&&&&&&&&foreach($end_handle_keys&as&$key)&
&&&&&&&&&{&
&&&&&&&&&&&&&&&&&&&&&unset($handle_list[$key]);&
&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&}&
tolog("\n\n*******************end**********************\n\n",&""&,&&&&&true);&cygwin下安装ispin出现问题 $ ispin /usr/bin/ispin: line 3: exec: wish: not found 怎么解决啊??_百度知道
cygwin下安装ispin出现问题 $ ispin /usr/bin/ispin: line 3: exec: wish: not found 怎么解决啊??
我有更好的答案
., and continues to evolve to keep pace with new developments. The tool was developed at Bell Labs in the Unix group of the Computing Sciences Research Center, starting in 1980. The software has been available freely since 1991make sure during cygwin installation to select packages gcc and tcl 这两个包有装么?觉得高大上啊. In April 2002 the tool was awarded the ACM System Software Award.Spin is a popular open-source software verification tool, used by thousands of people worldwide. The tool can be used for the formal verification of multi-threaded software applications
采纳率:60%
我遇到过这种情况,我卸载重装又有了
1条折叠回答
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 usrlibexec 的文章

 

随机推荐