【问题标题】:Representing parallel operations in flowcharts在流程图中表示并行操作
【发布时间】:2016-11-17 04:34:03
【问题描述】:

我需要制作带有温度调节模块的液压系统的流程图。然而,温度调节仅在循环的一部分期间被激活。在这部分期间,系统会继续执行其他操作。

我想在我的流程图中表示这一点。我需要一种方法来判断并行算法何时开始以及何时在主流程图中结束。我该怎么做?

【问题讨论】:

    标签: parallel-processing flowchart


    【解决方案1】:

    添加两个新的流程图节点/操作符forkjoin

    Fork 接受一个控制流进来,并产生两个出去,类似于常规流程图中的菱形决策节点。与决策节点不同,分叉节点将控制权传递给它的两个子节点,这意味着“并行执行从这里开始”。

    Join 接收两个控制流,并产生一个控制流输出。它的意思是, “等待两个输入分支上的执行完成,然后将控制权传递给输出分支”。这意味着“并行执行在这里停止”。

    现在您的流程图可以有串行和并行部分;您甚至可以让并行部分生成额外的嵌套并行。

    现在您需要一个 fork 和 join 的图形表示。

    我们用本质上的流程图​​(“动作”和“决策”)来表示真实计算机程序的控制流程图。由于“fork”与“decision”(一个输入,两个输出)的相似性,我们选择将“fork”绘制为一个朝上的三角形(一个输入在顶部,两个输出在三角形底端点),并且“join " 作为一个向下的三角形,在三角形的底端点有两个输入,在向下三角形的顶点有一个输出。

    你可以看到automatically generated examples of this for C and COBOL programs。您可能不认为这些包含并行性......但事实上,许多语言的语言语义通常是未指定的,允许并行执行(例如,根据标准的 C 函数参数可以以任意顺序评估)。我们将这种不确定性建模为“并行性”,因为净效应是相同的。

    构建工业控制软件的人也需要表达这一点。他们 只需将控制流线从一个流程图项目拆分到另一个。请参阅document 中的顺序功能图

    我知道的最通用的“控制流”符号是Colored Petri Nets。这些不仅可以对控制流进行建模,还可以对数据流、同步和算术进行建模,这意味着您可以对具有非常复杂流的系统进行建模。您可以直接使用 CPN 为常规流程图建模。 CPNs 也泛化了有限状态机。这对程序员意味着,如果您不了解 CPN,您应该现在了解这些。您会发现“流程图”(作为 CPN)现在在讨论其部件异步运行的系统时再次有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-10
      相关资源
      最近更新 更多