分布式系统中的并发建模与模块化设计
1. 用 Petri 网建模并发
1962 年,Carl Adam Petri 引入了一类图,即所谓的 Petri 网(PNs)。Petri 网是一种二分图,图中带有在图中流动的令牌,用于对系统的动态行为而非静态行为进行建模,例如检测同步异常。
二分图有两类节点,弧总是连接一类节点中的一个节点与另一类节点中的一个或多个节点。在 Petri 网中,这两类节点是库所(places)和变迁(transitions),因此这类二分图常被称为库所 - 变迁(P/T)网。弧连接一个库所与一个或多个变迁,或者一个变迁与一个或多个库所。
为了对系统的动态行为进行建模,Petri 网的库所中包含令牌。变迁的激发会从变迁的输入库所移除令牌,并将它们添加到其输出库所。
Petri 网可以对分布式系统中的不同活动进行建模。一个变迁可以对事件的发生、计算任务的执行、数据包的传输、逻辑语句等进行建模。变迁的输入库所对事件的前置条件、计算任务的输入数据、输入缓冲区中数据的存在或逻辑语句的前置条件进行建模。变迁的输出库所对与事件相关的后置条件、计算任务的结果、输出缓冲区中数据的存在或逻辑语句的结论进行建模。
Petri 网中令牌在库所中的分布在给定时间被称为网的标识,它反映了所建模系统的状态。Petri 网是非常强大的抽象,可以表达并发和选择。
Petri 网可以对并发活动进行建模。例如,图 2.18(a) 中的网对冲突或选择进行建模;变迁 t1 和 t2 中只有一个可以激发,但不能同时激发。如果两个变迁在因果关系上是独立的,则称它们是并发的。并发变迁可以在彼此之前、之后或并行激发。
当选择和并发
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



