分布式算法基础定义与网络遍历算法
1. 分布式算法基础
1.1 分布式系统组成要素
分布式系统由多个计算单元构成,每个单元抽象为一个进程。进程集合是静态的,记为 $\Pi = {p_1, …, p_n}$,每个进程 $p_i$ 顺序执行,每次执行一个步骤。进程的索引 $i$ 用于外部观察者区分不同进程,且每个进程通常有自己的身份标识 $id_i$。
进程通过通道进行消息的发送和接收来实现通信。通道被假定为可靠的,不会创建、修改或复制消息。部分情况下,通道遵循先进先出(FIFO)原则,即消息按发送顺序接收。通道一般为双向且具有无限容量,不过在某些特定情形下,也会考虑单向通道。每个进程 $p_i$ 有一个邻居集合 $neighbors_i$,该集合依据具体情况,包含连接 $p_i$ 与其邻居进程的通道的本地标识或这些邻居进程的身份标识。
从结构上看,分布式系统可以用一个连通的无向图 $G = (\Pi, C)$ 来表示,其中 $C$ 是通道集合。有三种类型的图尤为重要:
- 环 :每个进程恰好有两个可直接通信的邻居,即左邻居和右邻居。
- 树 :具有无环且连通的特性,添加新通道会形成环,移除通道则会导致图不连通。
- 完全连通图 :每个进程都直接与其他所有进程相连,在图论中也称为团。
1.2 分布式算法与同步/异步算法
分布式算法是由 $n$ 个自动机组成的集合,每个进程对应一个自动机。自动机描述了相应进程执行的步骤序列,除了具备图灵机的能力外,还增加了两个通信操作:
超级会员免费看
订阅专栏 解锁全文
1058

被折叠的 条评论
为什么被折叠?



