当前位置:文档之家› 互斥算法几个基本概念

互斥算法几个基本概念

完成 • 在正常情况下,最多需要传递的消息的个数为
(由最低级的系统发出选举消息) : ?
东南大学 28
投标
• 这是选举过程的一种特殊实现:每个竞争者 (进程)从一个给定的集合中随机选取一个投 标值(而不是使用固定的进程ID)来参与竞 争(选举),从而增加进程当选的公平性。
• 要求
– 竞争者只能通过交换消息来相互通信 – 通信是无错的 – 每个竞争者都将在最后期限前发出它的投标值 – 竞争者不能发送相互冲突的信息给不同的竞争者
队列为空,则将资源状态改为可用,否则从队列中 选择一个请求发送应答。
东南大学 13
Maekawa算法的实现
• 理想的请求集
– 任何两个子集均恰有一 个公共进程
– 各子集应尽可能等长 n = k(k-1) + 1
• 死锁问题
– 需要在等待中作进一步 的消息交换,然后依据 时戳等参数来解除死锁 (要求优先级低的放弃 请求)
5
自稳定
• 在一般意义下的分布式系统没有一个能 随时掌控全局状态的“中央”节点,自稳 定的意义在于系统中对等的各分系统可 以以任何初态开始工作,并能在一个确 定的时间(片)后,确保系统是稳定 的,并进入正常的工作状态。
– 如果收到应答,则P设置一个计时器并等待当选者宣布自己的ID; – 如果计时器满时还没有收到当选者的消息,则P重新开始选举过程。
• 当进程Pi收到进程Pj发来的选举消息时
– 向所有优先级比自己高的进程广播选举消息来开始一个选举过程, 并向Pi返回一个应答;
– 如果自己有最高优先级,则立即宣布自己当选;
• 权标的实现可有多样性
– 状态位 – 数据记录
东南大学 17
Ricart和Agrawala的第二个算法
• 算法
– 初始时权标被赋予任意一个进程,希望访问资源的进程 通过向其它所有进程广播一个带时标的消息来请求权
标,请求的时标最小者优先获得权标。

当前拥有权标的进 i+1,i+2,……,n
,程,Pi若1,不2再,需…要…使,用i-1资的源顺,序则搜按索其照
东南大学 14
作业
• 13个进程共享一个资源,用Maekawa算 法来支持互斥,请划分进程请求子集
• 本次作业12月13日交
基于权标的分布式互斥算法
东南大学 15
东南大学 16
权标的概念
• 应答消息是一次性的授权,再次使用资源 时需要重新申请;而权标是固定的授权, 拥有方可以反复使用这个授权,直至授权 方收回(例如通过一个请求消息)。
id(1) = 1;id(2) = 2;
1
id(3) = 3;id(4) = 4。
4
2
共需 n×n×2 +((n- 1)+1)×(n-1)/2 = 5n×n/2-n/2次 消息传递
3
东南大学 23
优化的单向环算法
• 对并行发起的选举操作,通过为每个进程Pi引 入一个布尔量participanti(初值为F)来减少 不必要的消息传输,以提供效率。
3
东南大学 25
Garcia-Molina的占领算法
• 要求系统中每个进程都知道其它所有进程的优先级
• 当进程P通过超时机制发现当前的协调者不再工作时,要向 所有优先级比它高的进程广播选举消息以开始一个选举过程
– 如果在规定时间内没有应答,则P向所有优先级比自己低的进程发送 自己的ID,宣布自己当选;
第四章 互斥与选举算法
东南大学 1
互斥算法--几个基本概念
• 互斥算法的目的是解决对共享资源的访问冲 突问题
• 算法的控制机制
– 基于权标的算法:通过权标拥有权来控制对共享 资源的访问
– 非基于权标的算法:通过进程之间的消息交换来 协商决定对共享资源的访问
• 算法的适应性
– 静态互斥算法:算法的行为独立于系统的状态 – 动态互斥算法:算法的行为依赖于系统的状态
Pt1=T 2-2->3 -2->4 -2->1 stop
Pt1=F Pt2=F Pt3=F Pt4=F
Pt2=T 3-3->4 -3->1 stop
Pt3=T 4-4->1 stop Pt4=T
id(1) = 1;id(2) = 2; id(3) = 3;id(4) = 4
1
4
2
∴ 共需 n + 1 + …… + n = (n+3)n/2次消息传递
它进程,找到第一个需要权标的Pj,并将权标传递给 它。
– 各进程对权标的使用被记录在权标中,因此进程Pi在释 放权标时可以根据自己的请求队列和权标的记录来确定 下一个拥有者。
• 权标的传递与请求的时标无关,但由于沿一个固
定的方向传递,因此算法仍然是公平的,不会有
饥饿现象发生。
东南大学 18
3
基于权标环的简单算法
使用
东南大学 7
改进的Lamport互斥算法
P1 使用
P2 使用
P3
• 当进程Pj在发出自己的请求后收到一个来自进程Pi的时戳更小的 请求,则Pj向Pi的应答可用省略。
• 交换的消息数量可少于3(n-1)个
东南大学 8
Ricart和Agrawala的第一个算法
• 当进程Pi需要占用公区时,它向分布式系统中所有进程 (从概念上讲包括它自己)广播一个三元组(公区名,进 程号,时标)作为请求。 – 回如一果个接收OK者给PPj没i。有占用该公区且也没有申请使用它,返 – 如果Pj正在该公区中,则不应答并暂存这个请求。 – 如果Pj正在申请使用这个公区,则需要将收到的时标与 使自用己,申则请P的j返时回标一进个行O比K较并,暂时存标自小己者的优请先求。;如否果则P不i优应先 答并暂存这个请求。
• 实现方法
– 各Pi在发起选举时将participanti置为T – 在收到大于自己id的选举消息且自己的participanti
为T时终止这个选举(即不再转发) – 在选举结束(被选中进程通知结果)时,收到通知
的Pi同时将自己的participanti置为F。
东南大学 24
4
1-1->2 -1->3 -1->4 -1-> 1, 1-1-> 2 -1-> 3 -1-> 4 -1->1 STOP
东南大学 5
Lamport互斥算法
• 为了请求资源,进程Pi发送带时标的消息r给系统中的所有进 程,包括它自己;
• 任意进程Pj收到请求资源的消息时,将该消息按时标顺序放 在自己的局部请求队列中并发回一个带时标的应答;
• 进程Pi获得资源访问权的条件是
– 它已收到从其它所有进程发来的应答 – 它的请求r在它的请求队列的顶部 – 它从所有其它进程处收到的消息的时标均比r的时标大;
• just go around
• 适合于高负荷的环境,低负荷导致权标低效移 动,造成资源浪费。
P (i:0 .. n-1) ::= [ receive token from P ((i – 1) mod n); Consume the resource if needed; send token to P ((i + 1) mod n)
• 通常基于全局优先级,又称为极值查找算法
东南大学 21
针对单向环的选举算法- Chang和Roberts
• n个进程按任意顺序排列在一个环上
• 进程的ID不同,值越小的优先级越高
• 当任意进程Pi收到一个选举消息时,需要将其中 的ID与自己的ID相比,并将较小者放入选举消息 中向环的下游发送;
• 当任意进程Pi收到包含自己ID的选举消息时,可 确认自己当选,这时它需要将这个消息通知所有 其它的进程。
R1:{P1,P3,P4} R2:{P2,P4,P5} R3:{P3,P5,P6} R4:{P4,P6,P7} R5:{P5,P7,P1} R6:{P6,P1,P2} R7:{P7,P2,P3}
P1、P6和P7同时申请资源,并且 P1得到P4的应答,等待P3的应答 P6得到P2的应答,等待P1的应答 P7得到P3的应答,等待P2的应答
东南大学 11
Maekawa算法
• 基本思想
– 将进程分成多个请求子集,要求这些集合两 两相交。进程Pi只要得到所属集合中其它进 程的应答即可访问共享资源。由于这些交集 构成了集合间相互的访问制约关系,因此可 以达到互斥控制的目的。
东南大学 12
2
Maekawa算法
• 具体算法
– 出进请程求Pi在消请息求;访问资源时,向自己的请求子集Ri发 – 放R应态i中入答为的自。可己进如用的程果,请PP则jj在求记将队收录该列到的记(资请录时源求该标状后为取态,占请为如有求占果,到有P并j达记则向的录将P时i的返这间资回个)源一请;状求个 – 源P息i只,。有在这在访些问进得程结到在束Ri收后中到要所释向有放R进i中消程的息的所后应有,答进如后程果才发自能送己访释的问请放资求消
调度能力) – 反应时间:进程发出访问请求到执行完访问操作的
时间间隔(依赖于系统的负载和调度的合理性)
东南大学 3
一些假设
• 进程内部是顺序的 • 进程之间通过消息传递通信 • 通信对象是直接可达的 • 无传输错误 • 通信是异步的,传输延迟有限但不可预测 • 通信采用FIFO方式
东南大学 4
非基于权标的分布式互斥算法
东南大学 2
互斥算法--条件和性能参数
• 互斥算法必须满足
– 无死锁-当资源可用时进程不应该永远等待 – 无饥饿现象-每个对资源的访问请求最终都应能得
到满足 – 公平性-进程对资源访问权的获得应是相对公平的
• 衡量互斥算法性能的参数包括
– 每个请求的消息数 – 同步延迟:共享资源的有效访问间隔(更有效的
相关主题