分布式系统中的通信
gossip协议

Gossip协议简介Gossip协议是一种分布式系统中常用的通信协议,用于在节点之间传播信息。
它的设计目标是高效、可靠地将消息传递给所有节点,并保证最终一致性。
Gossip协议的核心思想是通过节点之间的随机通信,将信息在整个网络中传播开来,从而达到全局共识的目的。
工作原理Gossip协议的工作原理非常简单,每个节点持有一个消息队列,用于存储待传播的消息。
当一个节点收到一条新消息时,它会随机选择若干个其他节点,将该消息发送给它们。
被选中的节点在收到消息后,会继续将消息传播给其他节点,以此类推。
为了保证消息的可靠性,Gossip协议引入了一种反熵机制。
节点在传播消息的同时,也会随机选择一个节点,向其询问是否有新的消息。
如果该节点有新的消息,它会将消息发送给询问的节点。
通过这种方式,系统中的消息可以互相传递和更新,最终达到一致的状态。
优点Gossip协议具有以下几个优点:1.分布式:由于Gossip协议采用随机通信方式,节点之间没有中心控制节点,因此可以轻松扩展到大规模的分布式系统中。
2.高效:Gossip协议通过随机选择节点进行通信,可以快速地将消息传播到整个网络中。
同时,节点之间的通信是异步的,不需要等待其他节点的响应,因此具有较低的延迟。
3.容错:Gossip协议具有较好的容错性,即使在网络中存在故障或节点失效的情况下,消息仍然可以继续传播。
应用场景Gossip协议在分布式系统中有广泛的应用场景,特别是在一些对消息传递速度要求较高、节点数量较多的系统中,如:1.区块链系统:Gossip协议可以用于区块链系统中的共识算法,保证所有节点对区块链的状态达成一致。
2.云计算系统:Gossip协议可以用于云计算系统中的节点管理,保证各个节点之间的状态一致性。
3.物联网系统:Gossip协议可以用于物联网系统中的传感器数据传输,确保所有节点都能及时获得最新的数据。
总结Gossip协议是一种高效、可靠的分布式通信协议,通过随机通信和反熵机制,实现了消息在整个网络中的传播和一致性。
分布式配电自动化系统的构成与通信方案

分布式配电自动化系统的构成与通信方案分布式配电自动化系统是一种基于分散的智能设备、通信网络和计算中心的现代化电力配电系统。
该系统具有较高的自动化程度、较高的可靠性和较快的响应速度,可以为用户提供更加优质的电力服务。
本文将就分布式配电自动化系统的构成与通信方案进行详细的讨论。
一、分布式配电自动化系统的构成1. 智能设备分布式配电自动化系统中的智能设备是系统的核心,包括智能电表、智能开关、智能变压器等。
这些智能设备可以实现自主的进程控制、自我诊断、故障定位和数据采集。
智能设备具备较高的智能化水平,能够较好地应对复杂的实际场景。
2. 通信网络分布式配电自动化系统需要保证智能设备之间的信息交流和数据传输。
因此,该系统需要具备高效稳定的通信网络。
通信网络一般分为局域网和广域网两种。
局域网通常使用以太网等通信协议,用于局部信息交换;广域网则可以采用现代化的通信协议,如TD-LTE等。
3. 计算中心分布式配电自动化系统需要对智能设备采集、处理的信息进行中央管理和控制。
因此,该系统需要建立计算中心,用于收集并分析处理智能设备采集到的数据。
计算中心可以采用云计算等技术,实现海量数据的处理和存储,以提高运行效率和数据安全性。
二、分布式配电自动化系统的通信方案1. 通信模式分布式配电自动化系统的通信模式可以采用集中式和分散式两种。
集中式通信方式一般采用串口和网口方式,通信速率较慢;分散式通信方式一般采用无线网络方式,信息交流和数据传输较快。
目前,分散式通信方式已经成为分布式配电自动化系统的主要通信方式。
2. 通信协议分布式配电自动化系统的通信协议可以采用Modbus、IEC61850、DNP3等协议。
Modbus协议是一种通信协议,广泛应用于工业自动化领域,支持较多的设备类型;IEC61850协议是基于国际标准的一种通信协议,支持分布式控制结构;DNP3协议是一种分布式网络协议,适用于分布式控制应用场合。
3. 通信安全分布式配电自动化系统需具备较高的安全性,防止黑客攻击和数据泄露。
消息队列的使用场景

消息队列的使用场景一、引言消息队列是一种常用的分布式系统中的通信方式,它能够解决不同系统之间的异步通信问题。
消息队列通过将消息存储在队列中,并且按照先进先出的原则进行处理,实现了异步通信的效果。
本文将从多个角度探讨消息队列的使用场景。
二、消息队列的基本概念1. 消息队列消息队列是一种数据结构,它用于在应用程序之间传递数据或消息。
消息被存储在一个队列中,并且按照先进先出(FIFO)的顺序进行处理。
2. 生产者生产者是向消息队列发送消息的应用程序或组件。
3. 消费者消费者是从消息队列接收并处理消息的应用程序或组件。
4. 消息消息是指需要在生产者和消费者之间传递的数据或信息。
5. 主题(Topic)主题是指一类相关的消息,可以订阅主题以接收相关信息。
三、使用场景1. 异步处理任务在大型分布式系统中,异步任务处理非常重要。
例如,在电子商务网站上下单后,需要进行订单处理、库存更新等操作。
如果这些操作都采用同步方式处理,那么将会导致响应时间变长,用户体验差。
通过使用消息队列,可以将这些任务异步处理,提高系统的吞吐量和响应速度。
2. 应用解耦在大型分布式系统中,不同的应用程序之间需要进行通信。
如果采用直接调用的方式,那么将会导致应用之间的耦合性增强,难以维护。
通过使用消息队列,可以将不同应用之间的通信解耦,提高系统的可维护性和可扩展性。
3. 数据缓冲在一些高并发场景下,数据处理需要进行缓冲。
例如,在社交媒体网站上发布动态时,需要对动态进行审核、推送等操作。
如果采用同步方式处理这些操作,那么对服务器的压力非常大。
通过使用消息队列,可以将这些操作异步处理,并且缓存一段时间后再进行处理。
4. 日志收集在大型分布式系统中,日志收集非常重要。
通过使用消息队列,在不影响主业务流程的情况下收集日志信息,并且将其传递给日志分析系统进行分析和监控。
5. 事件驱动事件驱动是一种常见的编程模式,在该模式下,应用程序会根据发生的事件做出相应的处理。
C语言在分布式系统中的应用

C语言在分布式系统中的应用分布式系统是由多台计算机组成的网络,在其中每台计算机通过共享资源和通信机制相互协作,以达到共同完成某个任务的目标。
C语言,作为一种广泛应用于系统开发和嵌入式设备的编程语言,也在分布式系统中发挥着重要的作用。
本文将探讨C语言在分布式系统中的应用,并分析其优势和挑战。
一、C语言在分布式系统通信中的应用在分布式系统中,各个计算机之间需要进行通信和协调,以实现任务的划分和协同工作。
C语言提供了一系列底层的网络编程接口,如套接字(socket)、TCP/IP协议族等,这使得开发人员可以方便地进行网络通信的编程。
通过C语言编写的网络通信程序,可以实现不同计算机之间的数据传输、消息交换等功能。
例如,在分布式计算任务中,服务器和客户端之间可以通过C语言的套接字接口进行数据传输和命令交互。
C语言提供了TCP和UDP两种不同的传输协议,开发人员可以根据实际需求选择合适的协议。
此外,C语言还提供了多线程编程的支持,开发人员可以利用线程来实现并发处理和分布式计算。
在分布式系统中,多线程的应用可以充分利用多核处理器的计算能力,提高任务的处理效率。
通过线程的同步与互斥机制,可以保证分布式系统中不同计算节点之间的数据一致性和协同工作。
二、C语言在分布式算法设计中的应用在分布式系统中,为了实现任务的分配和协同工作,通常需要设计和实现一些分布式算法。
C语言提供了丰富的数据结构和算法库,为开发人员提供了设计和实现分布式算法的基础。
C语言的数据结构和算法库包括链表、队列、栈、哈希表、排序算法等,这些数据结构和算法可以用于分布式系统中的任务调度、状态管理和数据处理等方面。
开发人员可以利用这些库来实现分布式系统中的各种算法,如分布式排序、分布式图算法等。
此外,C语言还提供了指针操作和内存管理的功能,这使得开发人员可以更加精细地控制和管理分布式系统的资源。
通过合理地使用指针和内存管理技术,可以提高分布式系统的性能和可靠性。
分布式系统原理与范型

分布式系统原理与范型
分布式系统是由多个独立计算机组成的系统,它们通过网络进行通信和协作,以实现共同的任务。
分布式系统的设计和实现涉及到多种原理和范型,这些范型描述了不同方面的分布式系统行为和特征。
1. 分布式计算原理:分布式系统的核心,它描述了如何将任务分配到不同计算节点上进行并行计算。
其中最常用的原理是MapReduce,它将任务划分为多个子任务,每个节点负责处理其中的一部分,最后将结果汇总。
其他常见的分布式计算原理包括Flocking,Migrating,Scatter/Gather 等。
2. 通信原理:描述了分布式系统中不同节点之间的通信方式和协议。
常用的通信原理包括RPC(远程过程调用),消息队列,RESTful API 等。
3. 一致性原理:描述了分布式系统中不同节点之间如何保持数据一致性的方法。
常见的一致性原理包括Paxos算法,Raft算法,分布式锁等。
4. 可靠性原理:描述了分布式系统如何保障可靠性和容错性。
其中最常见的原理是副本备份,即将关键数据在多个节点上备份,以防止单点故障和数据丢失。
还有其他的可靠性原理,如容错冗余,自适应容错等。
5. 安全原理:描述了分布式系统如何保障数据的安全性和隐私性。
常见的安全原理包括身份认证,数据加密,防火墙等。
以上是分布式系统中常见的原理和范型,它们都是构建高可用、可靠、安全的分布式系统的基础。
不同原理和范型之间相互关联,它们之间的交互和协作影响着系统的整体性能和稳定性。
分布式工控系统中的网络通讯研究

的完 整性 , 这 同样 是个 技 术 性 安 全 问 题 。 随着 越 来 越 多 的 信 息 技
术应用在 D C S上 , 例 如 以太 网 , 基于个人计算机的控制器 , 我 们 发 现 病毒 ,蠕 虫 以及 其 他形 式 的 恶 意 软件 也 已 渗入 到 自动化 系 统 中。信 息安 全— — “ 保 护 信 息 以 防止 非 授 权 的传 输 , 修 改 和 破 坏, 不 管 其 是 偶 然 还是 有 意 的 ” 不 仅 仅 是联 网 以 及采 用 防 火墙 的 网络 隔 离 所需 解 决 的问 题 ,而 且 还 应 采 取 任何 措施 以 防 止 未 授 权 的个 人 或 软 件 非 法 侵 入 系 统 。 在 关 键 系 统 采 用 D C S, 应 用 有 效 性 —— “ 在 所 需 外 部 资源 已提 供 , 给 定 条 件 以 及 给 定 时 间 间 隔 下, 系统执 行相应功能需 求的能力 ” 也越来越 重要 。D C S 系 统 中, 不 仅 仅 是 计 算 机 的 有效 性 , 通 信 网 络 的 有 效 性 同 样也 是 一 个
线个 人 局 域 网 ) 随着 一 些 性 能 上 重 大 的 改 善 , 已经 在 工 业 环 境 中 变得 可行 。工业 应用 下特 定设 计 的解 决 方案 包括 基 于 I E E E 8 0 2 . 1 54无 线 个 人 局 域 网 的 H A R T , Z i g b e e , 以及 I S A 1 0 0 . 1 1 a 。 另一基于 I E E E 8 0 2 . 1 5 . 1蓝 牙 的 WI S A 协 议 可用 于 工 厂 自动 化
然 而 基 于 无 线 电技 术 的传 输 将 受 到 逻 辑 与 物 理 的 干 扰 。 这 使得
分布式系统知识点积累总结

分布式系统知识点积累总结一、分布式系统概述分布式系统是一个由多台计算机组成的系统,这些计算机通过网络进行通信和协作,共同完成某个任务。
分布式系统的设计目标是提高系统的可靠性、可扩展性和性能。
二、分布式系统的特点1. 系统中的计算资源是分布在不同的计算节点上的,节点之间通过网络连接。
2. 节点之间相互独立,没有全局时钟,只能通过消息传递的方式进行协调。
3. 分布式系统需要解决数据一致性、并发控制和通信延迟等问题。
三、分布式系统的关键技术1. 通信技术:分布式系统中的节点通过网络通信进行信息交换,通信技术是分布式系统的基础。
2. 数据复制技术:为了提高系统的可靠性和可用性,分布式系统通常会采用数据复制技术。
3. 一致性协议:分布式系统中的数据一致性是一个重要的问题,一致性协议可以保证系统中的数据一致性。
4. 分布式事务:分布式系统中的多个节点可能需要协同完成一个复杂的任务,分布式事务可以确保系统执行的原子性和一致性。
5. 负载均衡:分布式系统中的节点需要协同处理大量的请求,负载均衡技术可以使得系统的负载得到均衡,提高系统性能和可用性。
四、分布式系统的常见问题及解决方案1. 数据一致性问题:分布式系统中的数据一致性是一个常见问题,解决方案包括使用一致性协议、版本控制和事务管理等技术。
2. 并发控制问题:分布式系统中的并发控制是一个重要问题,解决方案包括使用锁、分布式事务和分布式共享内存等技术。
3. 通信延迟问题:分布式系统中的通信延迟可能导致性能下降,解决方案包括使用消息队列、异步通信和缓存等技术。
4. 节点故障问题:分布式系统中的节点故障可能导致系统的不可用,解决方案包括使用容错技术、数据备份和自动故障转移等技术。
五、分布式系统的一些经典算法1. Paxos算法:Paxos算法是一种用于分布式系统中的一致性协议,它可以确保多个节点对某个值达成一致。
2. Raft算法:Raft算法是一种分布式一致性算法,相比Paxos算法更容易理解和实现。
分布式系统中的安全问题与挑战

分布式系统中的安全问题与挑战一、引言随着计算机技术的持续发展,分布式系统已经成为了相当流行的系统架构。
它不仅可以提高计算能力和系统可用性,还能为企业带来巨大的商业价值。
然而,分布式系统也带来了许多强制性的安全挑战。
在分布式系统中,安全问题成为了一大关注的焦点。
二、分布式系统中的安全问题分布式系统由多个组件、节点和服务组成,这也就为安全问题提供了更多的入口和机会。
以下这些是常见的安全问题:1. 访问控制和权限管理在分布式系统中,访问控制和权限管理是非常关键的一环,要保证应用只能被授权的用户或服务访问。
如果这些措施不完善或者存在漏洞,那么数据就有可能会遭到泄露或攻击。
2. 保护数据和通信在分布式系统中,通信是最基本的操作,但是这也为攻击者提供了机会,其可能截获或篡改数据包。
因此,必须采用加密和安全通信协议来保护通信和数据的安全。
3. 确保数据的一致性在分布式系统中,数据会同时存储在多个地方,因此可能存在数据不一致的情况。
因此,需要一些机制来确保数据的一致性,如数据同步。
4. 避免逆向工程和篡改大部分分布式系统软件的代码是公开的,因此攻击者可能通过分析代码的方法来找到漏洞。
为了尽可能地避免这种情况,软件应该采用各种技术来保护代码,如反编译和代码混淆。
5. 恶意攻击分布式系统面临的大多数威胁都是恶意攻击。
在这些攻击中,攻击者可能会打破系统的访问控制并获取数据或控制系统。
这种攻击可能还会导致拒绝服务、窃取密码等问题。
三、分布式系统中的安全挑战1. 网络隔离:分布式系统中的不同节点通常是通过网络连接在一起的。
通常情况下,可以采用网络隔离来确保分布式系统中的安全。
网络隔离涉及许多方面,其中包括物理隔离、虚拟隔离、逻辑隔离等。
2. 多节点管理:在分布式系统中,有多个节点需要统一管理。
因此,需要一种方法来确保各个节点的安全和管理。
这通常可以通过中央控制器的方式来实现,但也可能给攻击者留下漏洞。
效,导致数据的不一致,这时需要一种机制来解决这种问题,即自我保护机制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 分布式系统中的通信
Ricart和Agrawala对此算法做了改进,使需要发送的消 息从3(n+1)减少为2(n+1) ② 进程Pj 收到消息后,按全序方式排序并插入自己的队 列中: 若自己不在且不想进入临界区,发送ok消息 若自己在临界区,不做回答 若自己正想进入临界区,比较到达消息与自己请求消息 的邮戳,若到达邮戳早,发ok,否则不发 问题: 一旦出现故障结点,ok消息永不到达,无法进入。
第三章 分布式系统中的通信
3. 协调者选择问题 分布式系统中常常会有“协调者”,如何选择。 ● Bully算法 系统中有n个进程P1,P2,… Pn,假定进程号最大者为 协调进程。某一进程在规定时间内无法与协调者联系,可以 发起竞选。 ★ Pi发起竞选,广播附有本进程号的竞选消息。 ★ Pi接到消息,若自己号小则沉默,否则发回拒绝消息, 自己发起竞选。 ★ 竞选者在规定时间内未接到拒绝消息,自动当选。广 播当选消息,运行协调程序,成为协调进程。否则竞选失败, 准备接受他人当选消息。若规定时间内未接到当选消息,可 再度发起竞选。
第三章 分布式系统中的通信
4. 原子事务 ●事务模型 ★ 事务原语 begin-transaction 事务开始 end-transaction 事务结束 abort-transaction 退出事务,恢复事务开始状态 等。 ★ 事务的特性 顺序性 原子性 永久性 ★ 嵌套事务:父子事务提交的时机与分布式环境
第三章 分布式系统中的通信
★ 网络时间协议(NTP)
NTP定义了时间服务的体系结构和在各种互连网络上分布 时间信息的协议,被Internet用作时钟同步的标准。 服务器组成层次结构,形成同步子网。主服务器位于树 根,与标准时间资源(如UTC接收机)相连,上级服务器对 下级服务器进行同步控制。 一般来说,由于每一层同步都会出现误差,较低层次的 服务器比较高层次的服务器时间更不准确。在服务器不可达 或出现故障时,可以重构同步子网。同步控制的方式大致有 三种。
t ) + 1
第三章 分布式系统中的通信
[例] 三个备有自己不同频率物理时钟的进程相互发送消息
0 6 12 18 24 30 事件e 36 42 48 54 60 D A 0 8 16 24 32 40 48 56 64 72 80 未同步前各自的时钟 C B 0 9 18 27 36 45 事件f 54 63 72 81 90 0 6 12 18 A 0 8 16 24 32 40 48 56 D 64 72 80 同步后的时钟 C B 0 9 18 27 36 45 54 63 72 81 90
第三章 分布式系统中的通信
● 同步时钟的使用
消息传送 实现Cache的一致性
2 互斥问题
临界区规则:有空让进,无空等待,有限等待 + 定序进入 简单的实现方法:设立“仲裁者”,集中式弊端 约定:进程与结点等价 进程间发送消息遵从“管道”规则 每个消息将在有限时间内正确到达 系统全互连
第三章 分布式系统中的通信
第三章 分布式系统中的通信
★ Lamport 时钟校正方法
通过在本地物理时间上加上一个偏移量来实现进程本地逻 辑时钟,进程按以下方式更新其逻辑时钟并在进程件传递逻 辑时钟的值:
■ Cp在进程P上的每一事件之前增值并加盖邮戳:Cp=
Cp + 1;
■ 当进程P发送消息m时,在m上携带逻辑时钟值t = Cp ■ 当进程Q接收消息 (m,t) 时,计算Cq= max ( Cq,
服务器A
Ti+1
Ti+2
服务器B
T
Ti+3
第三章 分布式系统中的通信
在服务器A、B之间传送两个消息m和m’ 。令由B到A的延迟 时间为t,由A到B的延迟时间为t’,服务器A对B的本机时钟 的偏差为δ。那么, Ti+1= Ti+ t +δ;( t≥0 ) Ti+3= Ti+2+ t’-δ;( t’≥0 ) 记 a = Ti+1 - Ti,b = Ti+3 – Ti+2 ; 两个消息的总延迟时间为:d = t + t’ = a - b 令每一对消息的计算误差为 Q = ( a+b ) / 2,那么: δ= Q + ( t’ – t ) / 2,由于t,t’ ≥ 0, 于是 Q – d /2 ≤ δ ≤ Q + d / 2
第三章 分布式系统中的通信
§1 概述
1. 系统中各部分通信的基本方式 利用共享存储区 消息传送 2. 分布式系统中通信考虑的关键问题 ● 发送策略 固定策略 虚拟线路策略 动态发送策略
固定策略简单,但不顾及网络负载;虚拟策略对此有所改进,亦能保 证消息发送与到达次序一致,但不能最大限度利用带宽;动态策略可充 分利用带宽,但不能严格保证消息发送与到达次序一致。
第三章 分布式系统中的通信
● 物理时钟
通常,使用协同宇宙时间UTC(Universal Coordinated Time)来代替国际原子时间TAI(International Atomic Time),精度可达0.5毫秒。时间服务器S配备接收卫星授时 装置并根据请求提供标准时间。进程P在消息mr中请求时间, 并在消息mt中接收时间t,原则上它应该将自身的时钟置为 t + Ttrans,其中Ttrans为从S到P的消息传送时间。 Ttrans是不确定的,容易受到网络传输竞争的变化。实际上, Ttrans= min + x,min是理想情况下的网络传输时间,而x随 网络环境的变化而变化。
时钟同步
24 30 36 42 48 65 71
第三章 分布式系统中的通信
注意: 使用逻辑时钟,a->b可以保证C(a) < C(b),但反之不然。 上图中事件e和f分别是进程3中的事件,虽然可以看出存在 C(f)﹥C(e),但e‖f。使用逻辑时钟只能对事件作部分排序! 可以通过对发生的事件加上进程标识符且对进程标识符进 行排序,来实现对事件的完全排序。进程P上的事件a时间邮 戳为Ta,进程Q上的事件b时间邮戳为Tb,定义: a、b的全局时间邮戳分别为 ( Ta,p ),( Tb,q ),( Ta, p ) < ( Tb,q ) 当且仅当Ta < Tb 或者Ta = Tb但同时有p < q。 进程P中的事件a先于进程Q中的事件b发生,用a﹦﹦>b表 示。这里﹦﹦>表示全序关系。
第三章 分布式系统中的通信
● 连接策略
线路转换:永久物理链路,固定独占使用 消息转换:物理链路动态分配,临时共享使用 信包转换:物理链路与信包捆绑,消息拆分传输 ● 冲突解决策略 冲突检测 令牌传递 消息槽 ● 保密 单密钥技术 公公密钥技术
第三章 分布式系统中的通信
§2 分布式系统中的同步机制
第三章 分布式系统中的通信
■ 组播方式:主要用于高速网。某个或某几个服务器定
期向局域网上的服务器广播时间,服务器收到时间后,对广 播延迟做小的修正后进行同步,修改本地时钟。
■ 过程调用方式:与Cristian 算法类似。 ■ 对称方式:最适用于用于层次同步方式,精度最高。
主、从服务器之间成对交换,每个消息都附加时间邮戳。
第三章 分布式系统中的通信
● 分布式系统中事务的实现 ★ 副本问题
一致性 读写分开问题 ★ 修改日志 ★ 两阶段提交 ■ 第一阶段:发送消息,检查提交准备工作并回送检查 结果 ■ 第二阶段:发送消息,要求提交或abort ■ 事务发起者即为协调者
第三章 分布式系统中的通信
★ 协调者需要:
知道事务涉及的所有结点 让所有参与者知道谁是协调者 ■ 做法 Client向每个服务器发送事务函数 Addserver(事务名,协调者名) 每个参与者(非协调者)向协调者发送报到消息 Newserver(事务名,本结点名) 协调者生成一张参与者表,在收到参与者消息后将 每个参与者列入表中
第三章 分布式系统中的通信
★ 平均算法
将时间划分为定长的时间区间,大家约定一个起始时间T0, 第i个区间为[ T0+ iR, T0+ (I+1)R ],这里R为系统参数。 每个时间间隔开始时,每台计算机广播自己的本机时间。由 于本机时间各不相同,这些广播并不精确地发生在同一时刻。 每台机器也会收到其它机器的广播,仿照Berkeley算法,取 一个可信时间间隔,在该区间内收到的广播为有效广播,计 算平均值(或去掉一个最大值、一个最小值后平均),用估 计传输时间做修正后,作为自己的本机时间。 显然,这样得到的系统标准时间与UTC无关,仅仅为了系 统内部同步使用。
第三章 分布式系统中的通信
★ Cristian 算法
如果进程P的时钟刷新率很低,那么发送mr所需时间、时 钟服务器处理请求的时间和接收mt所需时间的来回时间Tround 可以以合理的精度地用进程P的本机时钟计算出来。 如果从S接收的标准时间为t,近似地可以认为实际时间为 t + 0.5Tround。近似精度为±[ ( Tround/2 ) – min ]。 ★ Berkeley算法 时间服务器周期性地向所有节点发送UTC并询问当地的时 间,接收者返回各自本地时间与服务器时间的偏差信息,根 据接收到的偏差信息、当时的服务器本机时间,计算出传输 来回的平均时间,扣除后再计算出每台机器的时间偏差,向 它们分别发送,供它们修正自己的本机时间。
第三章 分布式系统中的通信
★ 广播式令牌传递
针对非环状结构网。 对每个临界区,设令牌向量T=(T1,T2,…Tn),其中 n为进程数。 每个进程对每个临界区设立请求队列。 进程Pi希望mi次进入临界区时,广播Request (Pi, mi) 后等待令牌。收到后将Ti改为mi并进入临界区,退出时,查 看请求队列,若空则继续执行,若有请求则取出队首元素 Rquest(Pj, mj),若mj>Tj则将令牌交给Pj,否则删除该请求 继续查看,直至队列为空。若队列已空令牌仍在手中,等到 mj>Tj的请求出现时,再转移令牌。无令牌进程接到请求将其 插入请求队列即可。 实际上,临界区C已经扩大为(C,T)了。