【发布时间】:2013-02-16 20:10:41
【问题描述】:
我必须编写一个分布式系统,其中有四个进程在四个不同的节点上运行。分布式系统应该以以下方式工作:随机数生成器在每个进程中生成一个随机数。目标是通过进程之间的消息传递来平衡所有进程中的这些值。这样,进程 A 是服务器,它从所有进程中获取号码,然后命令它们将其号码的一部分发送到一个或多个其他进程,以使进程持有的所有号码保持平衡。例如,A 的计数是 30,B 的计数是 65,C 的计数是 35,D 的计数是 70。A 计算 30+65+35+70 = 200 除以 4 = 50。现在进程 A(服务器)知道谁拥有的更少高于平均水平,谁拥有超过平均水平。现在的问题是 A 如何决定谁发送什么号码给谁?以平衡所有进程的值。请注意,A 不能直接指示进程减少或增加其计数,例如它不能向 B 发送一条消息并告诉它减 15,然后再发送一条消息给 C 并告诉它增加 15。A 必须向 B 发送一条消息,告诉 B 减 15 然后发送一个向 C 发送消息并告诉它增加 15,或者换句话说,它告诉 B 将您的计数中的 15 发送给 C。提前致谢。扎基。
【问题讨论】:
标签: algorithm language-agnostic distributed