【问题标题】:Is there a tool to model/simulate software concurrency?是否有建模/模拟软件并发的工具?
【发布时间】:2009-12-22 19:07:00
【问题描述】:

是否有一个很好的工具可以以图形方式对应用程序并发/锁定方案进行建模并可以模拟某些方面?

我知道 Petri 网或多或少可以用于此目的,但我不知道可以设计和模拟的良好 GUI 工具。

UML 是否可用于此类目的?

非常感谢任何好的链接。

【问题讨论】:

    标签: concurrency modeling petri-net


    【解决方案1】:

    UML 活动图可以表示为 Petri 网(例如see this paper)。不幸的是,我不知道任何用于模拟 Petri 网或活动图的面向工业的良好工具(但您可以轻松找到许多学术项目)。

    您确定要模拟您的模型(模拟是指您实际上想坐下来看看您的 Perti 网络是如何执行的)?通常这种类型的分析适用于小而简单的算法。在现实世界的情况下,您可能希望对您的算法进行model checking,而不是模拟。我建议您检查 SPIN(许多公司使用,例如 Siemens)。我对AlloyPrism 也有积极的体验。但如果您的重点是验证并行算法,我建议您先考虑 SPIN。

    编辑:我检查了一些模拟工具,我可以建议看看

    1)http://sourceforge.net/projects/visual-petri/

    2)http://www.renew.de/

    3)http://www.winpesim.de/index.html

    【讨论】:

    • 非常感谢您的回答。实际上,我只想为演示目的进行模拟,并且仅用于某些情况的简化模型:假设当数据设置为 D1 且参数为 P1 时,3-4 个线程正在尝试做同样的事情。
    【解决方案2】:

    SPIN 是一种流行的分布式系统验证工具,但我认为它只是命令行。但在 Spin 网页上,有一个指向密切相关的 GUI 工具的链接,称为 GOAL

    【讨论】:

      【解决方案3】:

      我怀疑这就是你要找的东西,但我会投入两分钱:

      在我的大学,在我们的并发软件系统课上,我们使用了一个名为 Labelled Transition System Analyser (LTSA) 的工具。它实际上是一种可用于对系统行为进行建模的语言。

      “代码”变成了状态图和转换表。

      【讨论】:

        【解决方案4】:

        Here is an interactive Java applet 可以设计和运行 Petri 网。

        【讨论】:

          【解决方案5】:

          我已经很久没看过了,但听起来Ptolemy 很合适。

          【讨论】:

            【解决方案6】:

            您可以查看Petri Net Sim,以模拟常见/定时/彩色 Petrinet,它带有一个漂亮的 GUI,可以实时显示 Petri 网络的执行情况。

            【讨论】:

              【解决方案7】:

              尝试使用并发工具 LTSA。 Java 程序。 (标记转换系统分析器),用于模拟程序。您可以从以下网址下载:

              http://www.doc.ic.ac.uk/ltsa/

              但是您在使用时必须耐心等待,学习如何使用它可能需要几个小时。在对 Java 程序建模时可能效果最好。

              当然,使用 UML 模型总是好的 :)

              【讨论】:

                猜你喜欢
                • 2012-08-10
                • 1970-01-01
                • 1970-01-01
                • 2023-03-12
                • 1970-01-01
                • 2014-11-11
                • 1970-01-01
                • 2010-09-21
                • 2011-05-07
                相关资源
                最近更新 更多