您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 3第三章 分布式协同处理
高级操作系统北京邮电大学2020/1/28北京邮电大学Outline第三章分布式协同处理北京邮电大学第三章分布式协同处理3.1事件定序与时间戳3.2分布式互斥3.3选择算法北京邮电大学3.1事件定序与时间戳次序与时间戳计算机上运行的应用程序只关心事件发生的次序,而不是事件发生的绝对时间,即只需要用计数器的值去给事件打上相应的时间戳。对于集中的物理时间:请求类和广播类难点延迟requestfortime--------------clienttimeserver---------------currenttime(delay)北京邮电大学3.1事件定序与时间戳有延迟,而且是不确定的,因为网络故障,可能会传送多次。Cristian’s算法Berkeley算法网络时间协议(NTP)UTC统一协调时间时间的质量、精确性与时间提供者的价格等相关北京邮电大学3.1事件定序与时间戳逻辑时钟一种单调增长的软件计数器,对事件集进行部分排序。相对时间,逻辑上是一致的定序若两个事件发生在同一进程中,则可用观察到的次序来确定它们发生的次序;无论何时在进程间传递消息,发送消息的事件先于接收同一消息的事件。先决条件:两个事件之间,逻辑时钟至少变一次,两个事件不会精确地同时发生北京邮电大学3.2分布式互斥分布式互斥要求安全性、可用性、定序在单机系统中,使用信号量(semaphores)、管程(monitors)等来保护临界区SP(S)V(S)Wait(s)Singal(s)北京邮电大学3.2分布式互斥集中式算法该方法保证了互斥的实现,协调者仅能让某一进程在某个时刻进入临界区。它也很公平,因为它允许请求的顺序同它们的接收顺序一致,没有永远的等待。北京邮电大学3.2分布式互斥分布式算法(要满足以下要求)系统中所有的事件都是全序的当一个进程接受到另一个进程请求消息(Request)时,•若接受者不在临界区中,也不想进入临界区,它就向发送者送Reply消息•已在,它就不回答(推迟)•要进入,但还没有进入,它就将自己的请求消息(Request)时间戳与收到的时间戳比较,若收到的小,回Reply消息,否则,推迟北京邮电大学3.2分布式互斥分布式算法举例北京邮电大学3.2分布式互斥在产生请求冲突时,遵守按时间戳排序,小时间戳优先的规则。每次进入临界区需要2(n-1)条消息,n为系统中的进程数目。相对集中式算法,慢、复杂、贵、不健壮北京邮电大学3.2分布式互斥令牌算法系统中所有的进程可组成一个虚拟或逻辑环,每个进程要知道谁在它的下一个位置算法:令牌环被初始化后,进程0首先获得令牌,这样令牌开始绕环运动,它从进程k传递k+1,以点到点方式,若一个进程得到了它相邻进程传递来的令牌,但它并不想进入临界区,就将该令牌往下传递。仅拥有令牌的进程才有权进入临界区。北京邮电大学3.2分布式互斥三种互斥算法的比较北京邮电大学3.2分布式互斥评价分布式同步互斥算法标准:响应时间和吞吐量:充分利用系统的分布性,获得高的吞吐量和小的响应时间。容错性:具有幸免于故障的能力。开销大小:算法需要的一些额外开销,消息的数目和大小等。收敛和公平:请求进入临界段的进程终将进入,在临界段执行的进程终将离开临界段。并且对各进程公平。可扩充性:容易加入新的结点和新的进程。北京邮电大学3.2分布式互斥确定性:一定能保证同步、互斥,还是可能保证,如果不是确定的,就是概率性的。恢复:对错误恢复的能力如何。实用性:对其使用作了多少限制。可理解性:如果一个算法是简单的,则很容易给出规范的正确证明。简单是很重要的,包括:算法的实现、测试、维护、修改等等。北京邮电大学3.3选择算法选择算法如果协调者进程由于它驻留的处理机故障,而无法正常工作(称为故障),系统只得通过在另一个处理机上重新开始一个新的协调者副本才能运行,确定在何处重新开始一个新的协调者算法,就称为选择算法。北京邮电大学3.3选择算法Bully(欺负算法)•Pi给所有比它优先数大的进程发送消息;•若无进程响应,Pi获胜成为协调者;•若有优先数比Pi大的进程响应•Pk,响应者Pk接管Pi的工作完成北京邮电大学3.3选择算法基于环结构的算法(基于没有令牌的环)•当任何一个进程发现协调者进程不起作用时,构造一个包含它自身进程号的消息给后继者;若后继者失败,继续下一个;•消息到达了始发者的手中,始发者接收者接收到包含它自身进程号的消息后,将其转化为协调者消息;•该消息将再一次绕环运行,向所有进程通知谁是协调者;具有最大优先数的进程,将它作为新的协调者。北京邮电大学
本文标题:3第三章 分布式协同处理
链接地址:https://www.777doc.com/doc-3361713 .html