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

分布式计算-扩展Dijkstra-Feijen-Van Gasteren算法确认终止

阅读更多

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

1、适于异步消息

规则A:当发送消息时,p使得unackp增加;当接收来自q的消息时,p向q发送确认消息;当接到确认消息时,p使得unackp减少。

规则B:当进程发送时,它变成黑色;仅当进程静止时,才变成白色。

2、算法

var statep:(active,passive);

      colorp:(white,black);

      unackp:integer init 0;

 

Sp:{statep=active}

        begin   send <mes>;unackp:=unackp+1;(*RULE A*)                      

                   colorp:=black;(*Rule B*)

         end

 Rp:{a message <mes> from q has arrived at p}

      begin receive <mes>;statep:=active;

               send <ack> to q (*Rule A*)

      end

Ip:{statep=active}

    begin statep:=passive end

 

Ap:{An ackonwledgement <ack> has arrived at p}

    begin receive <ack>;unackp:=unackp-1 end (*Rule A*)

 

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∧unackp=0}

       begin if p=p0

                   then if (c=white∧colorp=white)

                               then Annouce

                               else send <tok,white> to pN-1

                    else if (colorp=white)  

                               then send <tok,c> to Nextp

                               else send <tok,black> to Nextp;

              colorp:=white (*Rule B*)

       end

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics