我已经完成一项任务,找出分布式系统中状态记录算法的所有可能的启动器节点。
确切给出的问题是
“编写程序以找出分布式系统中状态记录算法的所有可能的启动器节点。”
[我想提到,我们已经在分布式操作系统的过程中研究了Chandy-Lamport的全局状态记录算法。我为Chandy-Lamport的另一项任务的全局状态记录算法编写了代码。
此启动器节点表示什么?我以为那些记录了它们相应状态的节点。我对吗?我必须用Java编写代码。请向我建议要遵循的方法或算法。
该算法的假设如下:
没有故障,所有消息都完整无缺,只有一次
通信通道是单向的,并且按FIFO顺序排列
- 系统中任何两个进程之间都有通信路径
- 任何进程都可以启动快照算法
- 快照算法不会干扰进程的正常执行
- 系统中的每个进程都记录其本地状态和传入通道的状态
该算法使用标记消息。每个想要的过程启动快照记录其本地状态,并在每个快照上发送一个标记其传出渠道。所有其他过程,在收到标记,记录其本地状态,从中获取的通道状态标记只是空了,并在所有他们的传出频道。如果一个进程在获得记录其本地状态,它记录传入通道的状态标记来自该标记,因为它承载了自它首先记录了其本地状态。
如果这就是您的术语的意思,那么使用Chandy-Lamport算法,任何节点都可以是发起方节点。因此,问题的答案是“所有人”。
但是,鉴于答案/解决方案的琐碎性质,我怀疑这并不是您的作业真正的意思。您要么遗漏了一些上下文,要么作业错了。我建议你问你的老师。
(或...也许是一个“技巧问题”。)