最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442
当前位置:首页 > 编程开发 > asp教程

时间同步算法与Simple Ring-based election algorithm算法分析

日期:08-02    来源:中国设计秀    作者:cnwebshow.com

。而且也假设S在处理请求的时候时间可以忽略不计。基于以上假设,改算法可以改进如下:VTe中国设计秀
VTe中国设计秀
从P发送多个请求包到S,然后取RTT最小的做为RTT除以二加在此包包含的时间上。VTe中国设计秀
VTe中国设计秀
算法精度分析:假设min为从S到P的最短时间,T为包含在上述定义的RTT中的时间。那么,P设置时间的范围应该是[T+min,T+RTT-min]。这样时间的偏差范围就在RTT-2min以内。改进后的算法精度应该为RTT/2-min。VTe中国设计秀
VTe中国设计秀
       VTe中国设计秀
VTe中国设计秀
Berkeley algorithm算法VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
Berkeley算法的使用环境与Cristian算法有所不同。Cristian算法是用在一个客户端向一个服务器请求正确时间的时候。而Berkeley算法是几个客户端之间同步时钟的算法。具体算法如下:VTe中国设计秀
VTe中国设计秀
1.       首先通过Change and Robert’s Algorithm来从一个环里面选择一个节点做为Master。VTe中国设计秀
VTe中国设计秀
2.       一个Master使用Cristian算法来请求各个节点的时间。VTe中国设计秀
VTe中国设计秀
3.       Master通过记录RTT的平均值,同时剔除偏差很大的RTT来评估出每个节点的时间偏差。VTe中国设计秀
VTe中国设计秀
4.       Master发送每个节点的时间偏差到每个节点,让节点自行校正。VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
客户端接受到了时间以后,一般来说不会把当前的时间往回调整。因为这会导致一些程序莫名奇妙的错误。因为在很多算法中,时间不会往回调整是一个基本假设。譬如make命令。VTe中国设计秀
VTe中国设计秀
解决的方案有一个:让时钟走慢点就可以了。花费一些时间来调整到正确时间。VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
另外,还需讨论一下Change and Robert’s Algorithm这个算法。这个算法和时间同步算法一样,是玩dota的时候需要用到的。在dota初始化的时候,需要同步各个玩家的时钟。在掉线了之后,就要通过特定的算法来找一个新的主机:VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
Change and Robert’s AlgorithmVTe中国设计秀
VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
Change and Robert’s Algorithm算法假设每个PRocess都有一个UID,同时在一个Ring状网络中可以有个没有方向的通讯信道。算法如下:VTe中国设计秀
VTe中国设计秀
1.       首先ring中的每个节点把自个标识为non-participant。VTe中国设计秀
VTe中国设计秀
2.       当一个process发现主机掉线了的时候,它首先把自个标识成为participant,然后发送给邻居一个包含了自个UID的一个选主机的数据包。VTe中国设计秀
VTe中国设计秀
3.       当数据包达到邻居的时候,首先和自己的UID比较下,如果自己的UID比这个UID大,就把自己标识成为participant,同时修改数据包里面的UID,并且也往顺时针方向发送这个数据。VTe中国设计秀
VTe中国设计秀
4.       当一个process接到一个数据包的时候发现这个数据包里面的UID和自己的UID一样的时候,就开始这个算法的第二阶段:VTe中国设计秀
VTe中国设计秀
5.       这个process把自己标识成为non-participant,同时发送已经选择好了主机的信息到邻居,并且包含UID信息。VTe中国设计秀
VTe中国设计秀
6.       如此循环,当回到被选中成为主机的Process的时候,整个过程结束。VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
这是在分布式系统里面选择一个主机的算法。当然,在特定的环境下,可以把选择的条件变化一下,譬如选择网络速度最快的或者是CPU最快的作为主机。同时,这个算法还可以避免多个Process同时发现主机掉线,几个process同时寻求主机的情况。VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
这个算法的伪码可以描述如下:VTe中国设计秀
VTe中国设计秀
Start : M:= i:VTe中国设计秀
VTe中国设计秀
       Send <i> to neighbor;VTe中国设计秀
VTe中国设计秀
Upon receiving message <j>;VTe中国设计秀
VTe中国设计秀
       If M<j then M:=j;VTe中国设计秀
VTe中国设计秀
                       Send <j> to neighbor;VTe中国设计秀
VTe中国设计秀
                Elseif M=j then leader;VTe中国设计秀
VTe中国设计秀
                Endif;VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
该算法详细的复杂度分析,数学模型和统计表可以参考这篇论文:VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
http://www.vs.inf.ethz.ch/publ/papers/MsgCplxElecAlgo.pdfVTe中国设计秀
VTe中国设计秀
VTe中国设计秀
VTe中国设计秀
本文仅分析了Centrilized System里面的几个时间同步算法,对于分布式系统里面的Network Time Protocal和Reference broadcast Synchronization算法并未做分析。以后有空研究研究NTP。VTe中国设计秀
VTe中国设计秀
 VTe中国设计秀

本文引用地址:/bc/article_46135.html
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明