在流程图中表示并行操作

use*_*556 5 parallel-processing flowchart

我需要做一个带温度调节模块的液压系统的流程图.但是,温度调节仅在循环的一部分期间被激活.在此部分期间,系统继续执行其他操作.

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

Ira*_*ter 4

添加两个新的流程图节点/运算符forkjoin

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

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

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

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

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

您可以查看自动生成的 C 和 COBOL 程序示例。您可能不认为它们包含并行性...但事实上,许多语言的语言语义通常是未指定的,实际上允许并行执行(例如,根据标准的 C 函数参数可以按任意顺序求值)。我们将这种不确定性建模为“并行性”,因为净效果是相同的。

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

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