`
deepfuture
  • 浏览: 4397960 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80051
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:69999
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103286
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285630
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15001
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67494
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32099
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45965
社区版块
存档分类
最新评论

终止检测-基于Dijkstra-Feijen-Van Gasteren算法

阅读更多

当算法达到终止配置时,分布式算法的计算终止,即配置中不存在进一步可应用的算法步,每个进程处于允许接收的状态,且所有信道为空,即消息终止,则这个配置是终止的。

1、Dijkstra-Feijen-Van Gasteren算法利用同步消息传递,检测基本计算的终止性。

2、

规则1:只有进程处于被动状态,它才处理令牌。

规则2:发送进程变成黑色。(发送基本消息意味着该进程处于活动,消息没有实现终止)

规则3:当黑色进程转发令牌时(除非进程p0),令牌变成黑色。

规则4:当波动不成功结束时,p0开始新一次波动(在上一次波动中,有消息仍在信道中运行,仍有进程在活动)

规则5:在发送令牌之后,每个进程接着变成白色。

3、算法:

var statep:(active,passive);

      colorp:(white,black);

 

Cpq:{statep=active}

        begin (*p sends a basic message,which is received by q*)

                   colorp:=black;(*Rule 2*)

                   statep:=active

         end

 

Ip:{statep=active}

    begin statep:=passive end

 

start the detection,executed once by p0:

        begini send <tok,white> to pN-1 end

 

Tp:(*Process p handles the token <tok,c>*)

      {statep=passive}(*Rule 1*)

       begin if p=p0

                   then if (c=white∧colorp=white)

                               then Annouce

                               else send <tok,white> to pN-1 (*Rule 4*)

                    else if (colorp=white)   (*Rule 3*)

                               then send <tok,c> to Nextp

                               else send <tok,black> to Nextp;

              colorp:=white (*Rule 5*)

       end

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics