分布式系统建模、死锁检测与终止验证
1. 分布式系统的通信对偶建模
分布式系统通常可通过客户端 - 服务器(Client - Server)或远程过程调用(RPC)模型来描述。在客户端 - 服务器模型中,系统由服务器之间的消息交换来定义。服务器具有特定状态并提供一系列操作,操作的执行会改变服务器的状态,系统中的进程则被定义为服务器状态变化的序列,这些变化是服务器进程内部的,服务器之间通过消息交换进行通信。
另一种可能的模型是将进程与移动代理关联起来。代理在服务器之间迁移,并在不同服务器上执行计算步骤。代理通过服务器状态与其他移动代理进行通信,消息作为进程载体隐藏在进程中,这种方式以资源共享而非消息传递来描述系统。虽然与远程过程调用原理类似,但移动进程模型更为宽泛,因为进程通常无需返回其“主”服务器。
关键在于,这两种模型(客户端 - 服务器和 RPC)描述的是同一个系统,只是根据操作的分组方式呈现出两种不同的视图。操作详细描述了分布式系统中的操作,由传入消息触发,在服务器上执行并改变服务器状态。在模型中,除了终止代理的操作外,每个操作完成后都会生成下一个代理消息,该消息会发送到系统中的另一个服务器以触发分布式计算中的下一个操作。服务器状态和代理消息是操作的输入和输出元素,因此在两个连续操作之间存在中间状态或中间消息,可称状态或消息“串联”了两个操作。
若操作序列由服务器状态串联,这是服务器视图,服务器状态是进程载体,消息是服务器间的通信手段;若由消息串联,则是代理视图,代理消息是进程载体,服务器状态用于代理进程间的通信。这两种视图分别展示了分布式系统中消息传递和资源共享的方面。
以容量为 2 的有界缓冲区分布式系统为例,该系统包含三个服务器
超级会员免费看
订阅专栏 解锁全文
53

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



