分布式操作系统的互斥算法

合集下载

分布式系统复习-电子科技大学-曹晟-牛新征

分布式系统复习-电子科技大学-曹晟-牛新征

分布式系统复习I1.分布式系统目标:资源共享、协同计算。

2.分布式系统问题源于三大特点:并发性、无全局时钟、故障独立性。

3.Internet & Intranet 难点:可扩展性(DNS、IP)、资源的定位、异构。

4.移动计算要解决的问题:避免由于移动需要重新配置的问题(DHCP);无线带宽有限,需要考虑QoS;私密和安全问题;Ad hoc网络的路由问题。

5.P2P定义:计算机借助直接交换实现资源共享。

6.P2P与C/S的区别:P2P网络中的节点既可以获取其他节点的资源或服务同时也是资源或服务的提供者,即兼具client和sever双重身份。

7.挑战:异构性、开放性、安全性、故障处理、可扩展性、并发性、透明性(访问、位置、并发、复制、故障、移动、性能、扩展)。

II1.结构模型:构成系统各部分的位置、角色、它们之间的关系。

C/S、P2P、C/S变种2.基础模型:为分布式系统设计者揭示若干关键问题。

交互模型:处理消息发送的性能问题,解决分布式系统中设置时间限制的难题。

故障模型:试图给出对进程和信道故障的一个精确的约定,它定义了什么是可靠的信道和正确的进程。

安全模型:讨论对进程和信道的各种可能的威胁,引入了安全通道的概念,它可以保证在存在各种威胁的情况下通信的安全。

3.中间件:软件层,一组计算机上的进程和对象,它们相互交互,实现分布式系统的通信和资源共享。

为系统开发者屏蔽系统的异构性,提供更方便的编程模式。

4.交互模型:进程之间通过消息传递进行交互,实现系统的通信和协作功能;有较大的时延;时间是进程间进行协调的参考,在分布式系统中,很难有相同的时间概念;独立进程间相互配合的准确性受限于上面两个因素。

5.故障模型:计算机和网络发生故障,会影响服务的正确性;故障模型的意义在于定义可能出现的故障形式,为分析故障带来的影响提供依据;设计系统时,知道如何考虑容错需求。

6.安全模型:分布式系统的模块特性及开放性,使它们暴露在内部和外部的攻击下;安全模型的目的是提供依据,以此分析系统可能受到的侵害,并在设计系统时防止这些侵害的发生。

一种改进的分布式资源共享的互斥控制算法

一种改进的分布式资源共享的互斥控制算法
为对方 已知道 自己的时 间戳较 晚 , 自阻塞 ) 已 。
④ ① ④ ①
图 1 第 二 种 情 况 下 的进 程 互 斥
( )两个进程 同时希望进入同一个 I 区; b 进程 0具有最早 a 临界 () 的时 间戳 , 所以它获胜 , 进程 2自阻塞 ; c 当进程 0退 出临界 区 () 时, 它发送一个 O K消息 , 表示进程 2现在可以进入 临界区。
发送者发回一个 N O消息 , 表示不允许请求者进入 该临界区 , 同时将该请求放人等待队列 中。
息数 目, 减少 了进程进入 临界 区的延迟 , 同时也减
20 0 7年 8 2 月 4日收到 第一作者简介 : 王 伟 ( 97 , 陕西宝 鸡人 , 士研 究生 , 17 一) 男, 硕 研
1 设想进入一
个临界区时 , 它构造一个消息 , 中包含它要进入 其
的临界 区 的名字 , 自身 的进程 号 及 当前 时 间 。然 它
是使用户能够方便地访 问远程资源, 并且 以一种受 控的方式与其它用户共享 这些资源。那么 , 如何能 使多个用户安全有效 的访问共享资源 , 就成 了分布
@ 2 0 S i eh E gg 08 c .T c . nn .

种改进的分布 式资源共享 的互斥控制算法
王 伟 李军锁 张新 家
( 西北工业大学软件与微电子学院 , 西安 7 0 6 ; 10 5 航天恒星科技股 份有限公 司产业园分公司 西安 7 0 7 , 107;
西北工业大学 自动化学院 西安 707 ) , 102
在发送了请求进入临界区的消息之后 , 进程等
待 回复 , 如果 没有 任何其 他进 程 回复 给它 N 消息 , O 同时它 也没 有 收 到任 何 早 于 它 的 时 间戳 的 相 同临

基于读写特征的现场总线分布式互斥算法

基于读写特征的现场总线分布式互斥算法

基 于读 写特征 的现 场 总线 分 布 式 互 斥 算 法
杨 王 黎 ,吴 雅 娟 ,杨 永
(大 庆石 油 学 院 计算 机 基础 教 育 系 , 龙 江 大 庆 黑 131 ) 6 38

要 : 对 传 统 分 布 式 互 斥算 法 中存 在 的消 息 复 杂 度 高 、 迟 时 间 长 等 缺 点 , 针 延 在传 统 Mak wa算法 的基 础 上 . 出 ca 提
a .其 中 : siain为消息 的 目的地址 ; o re 消息 的发送 者 的地址 ; r m m) Det t n o S uc 为 Paa 为参 数.具体 的 消息 数据结 构 为 : 请求 消息 ,e us(, t,w) 由节 点 P rq eti sr , , 向请求 集 s 发送 , 求 获 得 进 入临 界 区 的 许 可 ; 请 该 消息 的发 送采 用组播 / 播 ; 中 t( i sa ) L mp r 算 法 产 生 的时 戳 , 为读 写 标 识 , 明 该 广 其 s T metmp 为 a o t 刑 表 次请求 的是 读 或 者 写操 作.应 答 消 息 rp y ) 由节点 P 发 送 给 P , 许 P 进 入 临 界 区.释 放 消 息 e l (, , 允 rl s(, , ee e i a ) 由节点 P 向请求 集 s 发 送 , 明 P 离 开 临 界 区 , , , 表 释放 共享 资 源 , 采用 组 播 / 播 方 式 发 也 广 送 .查 询消 息 iq ie iJ 愚 , n ur( , 。) 由节点 P 向节点 P 询 问是 否 已经 封 锁 了请 求 集 s .放 弃 消息 rln u eiq i h
维普资讯


一种基于消息槽的K资源互斥算法

一种基于消息槽的K资源互斥算法
11 前 提 与 假 设 .
闲的资 源数不能满足 自己的要求 ,且没有其他节 点预定资 源 ,
则 节点 i 消息槽的末尾 项数 据填上 自己所需要 的资形结构 , 1 消息槽 , 就像 等待消息槽的下一次到达 。 个令牌 , 着这个逻辑环在系统 中循环往复地传送 。 沿 若 f a并且消息槽 的末 尾数据项 己经置上 , <, 则节点 i 不能
这里所说 的消息槽 , 就像这个大卡车 , 中共分 出 K槽位 , 槽 每个槽位 代表对 一个资 源的操 作情况 , 即该资源 目前是否被使 了。同时 , 如果节点 i 曾经将 消息槽的末尾项数据 填上的话, 那 么, 将这项数 据清 0 否则直接使 用资源 , ; 不必 考虑消息槽的末 用。当一个节点要使用资源时 , 就等着消息槽的到来 , 然后在其 尾 项数据 。 中找出若干空 闲的槽位 , 并声明 , 这些资源 己被 占用。使用完之 如果 fa并且消息 槽的末尾 数据项为 0 则表 明系统 中空 <, , 后, 再将这些 槽位释放 。
如果节点 i 完成了对资源的使用 , 那么等到消息槽到达后 , 将 自己所申请资 源所 对应 的消息槽中的槽位 清空 , 表明这些资
首先 ,目前 不同 WeGI b S系统之间互相访 问调用的能力较弱 ,
输 率的原 因 . 往往造 成 We G S系统信 息处理缓慢 、 bI 表示方 法 能提供 的空间分析功能有 限 , 还不能满足某些特殊行业高端应 用的需要 。
5 结束语
我们相信 ,随着 It n t n re技术 的飞速发展 , b S e WeGI 技术将
【 2 1刘 明德 地理信息系统 GI S理论与实删
清华大学出版社,0 6 i 20 . 跪 赫
息槽中空闲的资源数不能满足 自己的要求时 ,就把这一位填上 自己所需要的资源数 , 等到释放资源 时, 再将这项数据重新清 0 。

分布式系统进程互斥算法的分析与改进

分布式系统进程互斥算法的分析与改进

a ay e . u t emo ea mp o e lo tm o o e — n l o i m sp e e t dwh c e ov d s me p o lmst a o l n lz dF r r r , i r v d ag r h f r T k n r g ag r h wa r s n e , ih r s l e o rb e h tc u d h n i i t
计算机 光盘 软件 与应 用
21 第 l 0 0年 O期
Cm u e DS fw r n p lc t o s o p t rC o t a ea dA p i a in 工 程 技 术
分布式系统进程互斥算法的分析与改进
赵 喜 玲 ,何 勇 ( 阳农业 高等专科学校 ,河南信阳 信
Zha Xin He Yon o l g. i g
( i a gA r u ua C lg ,i a g 4 4 0 ,hn ) Xn n gi l rl ol eXn n 6 0 0C i y ct e y a
Absr c : i p p r ha a ays s c n nt na m u u l e lso ag rt m sa d ter c aa e o ve i o l t a xcu i n l o h ,n h i h r ce s i r lo
ha pe nm u a x lso l o i m sa di o e y e p rm e t . p n i t l cu in ag rt u e h ,n i pr v db x e i n s ts
Ke ywo dsM uua x l in;o n; e to r : t l cuso T ke Elc in e

互斥算法几个基本概念

互斥算法几个基本概念

互斥算法几个基本概念互斥算法是一种用于多线程或并发环境下解决资源竞争问题的算法。

当多个线程或进程同时访问共享资源时,资源竞争可能会导致数据不一致或其他运行时错误。

为了解决这个问题,互斥算法被设计出来,用于保证共享资源的正确访问。

以下是互斥算法的几个基本概念:1.临界区:临界区是指多个线程或进程同时访问共享资源的代码段。

在进入临界区之前,线程需要获取互斥锁。

只有一个线程可以进入临界区,其他线程需要等待。

2.互斥锁:互斥锁是一种同步原语,用于实现线程对临界区的互斥访问。

当一个线程获得互斥锁时,其他线程需要等待。

只有当持有锁的线程释放锁后,其他线程才能获取锁并进入临界区。

互斥锁是保证共享资源安全访问的核心。

3.死锁:死锁是指多个线程或进程在等待其他线程或进程释放资源时互相阻塞。

简单来说,就是互相僵持不前的状态。

死锁是一个非常重要的问题,因为它会导致整个系统停机或无响应。

4.饥饿:饥饿是指一些线程永远无法获取资源的情况。

当有多个线程竞争同一个临界区资源时,一些线程可能会一直没有机会进入临界区,导致饥饿。

饥饿问题需要特别关注,因为它会使一些线程无法正常工作,影响系统的性能。

5.优先级倒置:优先级倒置是指低优先级的线程持有了一个高优先级线程需要的资源,导致高优先级线程被挂起。

这种情况会导致整个系统的性能下降。

为了避免优先级倒置问题,可以使用优先级继承或者优先级反转等技术。

6.信号量:信号量是一种用于控制并发访问的同步原语。

它是一个计数器,用于记录可用资源的数量。

线程在访问共享资源之前需要获取信号量,只有当信号量的值大于0时,线程才能获取信号量并进入临界区。

线程完成对共享资源的访问后需要释放信号量,增加信号量的值。

7.读写锁:读写锁是一种特殊的互斥机制,用于平衡并发读取和写入操作。

它允许多个线程同时进行读操作,但只允许一个线程进行写操作。

读写锁可以提高并发性能,但需要注意写操作的互斥性。

以上是互斥算法的几个基本概念。

分布式系统中实现互斥的一种解决方案

第22卷第5期2006年10月赤峰学院学报Journal o f Ch ifeng C olleg eV ol.22N o.5Oct.2006分布式系统中实现互斥的一种解决方案王 翎(内蒙古工业大学 电力学院,内蒙古 呼和浩特 010080) 摘 要:通过对比在分布式系统中广泛使用的集中式和分布式两种软件锁的方案,提出了分布———集中式软件锁的解决方案.关键词:分布式系统;集中式软件锁;分布式软件锁;分布———集中式软件锁中图分类号:T P316.4文献标识码:A文章编号:1673-260X(2006)05-0039-02 在分布式系统中,仍然与单机系统一样,存在着多进程访问共享数据和资源的情况.但是分布式系统又比单机系统更加复杂,能否保证这些共享资源被正确访问,成为了分布式系统研究的一个问题.在解决这一问题过程中,提出了许多解决方案,有信号量、管程、软件锁和令牌传送等,本文下面介绍的方案是采用软件锁的方法解决互斥问题.1 传统解决方案———集中式软件锁和分布式软件锁1.1 集中式软件锁集中式软件锁就是采用集中锁管理器,把系统中使用的锁全部放在一台或几台锁管理器中,采用集中式管理.在集中式锁管理器中,软件锁的管理与单机系统中采用相同的方法实现.如图1所示.图11.2 分布式软件锁分布式软件锁的解决方案是每个要进入临界区的进程,就是在自己的节点上建立软件锁.这样系统中如果有多个进程(分别位于不同的节点上)要访问临界资源,就要在每个节点上都建立一把同名锁.当某个进程要使用这把锁时,它就向整个网络广播请求消息,由所有使用这把锁的节点进程向请求者做出应答.在一定策略的支持下(例如多数支持原则),由请求者根据应答情况,做出自己是否可以使用锁的决定.如图2所示.1.3 性能比较集中式软件锁分布式软件锁优 点(1)实现简单(2)进行点对点通信,网络负担小(1)系统稳定.即使某个节点崩溃,不会导致系统崩溃.(2)平衡系统负载.每个节点不会成为访问的瓶颈.缺 点(1)集中式管理器成为系统瓶颈.一方面成为网络访问瓶颈,另一方面机器内存成为建立大量软件锁的瓶颈.(2)系统稳定性由集中管理器决定.(1)实现复杂.特别是在按照先来先服务原则裁决优先进程时,时间是一个重要问题.(2)网络负担重.每个请求进程都要向系统进行广播,可能产生广播风暴.392 分布———集中式软件锁的设计方案由于分布式软件锁的特点是平衡系统负载,且系统稳定,而集中式软件锁的特点是网络实现简单,且网络负载小.因此结合二者优点,设计了下面的方案.2.1 概念任务主机:分布式系统中,发起任务的节点称为任务主机.系统中每个节点都可以发起任务,成为任务主机.所以系统中每个节点都可以成为任务主机.任务从机:辅助任务主机完成某次任务的每个节点,都称为任务从机.系统中的每个节点都有双重身份,既可以是任务主机,又可以是任务从机.主任务进程:在任务主机上运行的发起该任务的进程.从任务进程:主任务进程的子进程,可以运行在任务主机上,也可以运行在任务从机上.2.2 设计方案2.2.1 系统构成软件锁由锁和等待队列构成.软件锁建立在任务主机上.每个在任务从机上的从任务进程都建有一张软件锁映射表.包括锁名和任务主机的地址.系统提供lock和un2 lock原语.系统的构成如图3所示.图32.2.2 工作过程任务主机完成的操作:收到请求消息:当软件锁空闲时,任务主机向从任务进程发出许可应答,并修改锁内容.当软件锁忙时,任务主机向从任务进程发出等待应答,并将本次请求入队.收到释放锁消息:任务主机首先查看等待队列,如果非空,将让队首进程出队,并向该进程发送许可应答;如果空,则修改锁内容.从任务进程在任务从机上应完成的操作:发送请求消息:当从任务进程在访问临界资源时,都要向任务主机发出软件锁请求消息.收到许可应答消息:从任务进程访问临界资源,访问结束后,向任务主机发出释放软件锁消息.当收到等待消息,从任务进程进入阻塞状态.从任务进程在任务主机上时,与单机处理相同,这里不再说明为了保证系统稳定任务主机在判断任务从机是否崩溃时,根据锁的最大应答时间进行判断.3 性能特点3.1 系统稳定.因为软件锁建立在任务主机上,即使任务主机崩溃,也只影响该任务,而不会使整个系统崩溃.3.2 消除了集中式锁管理器的瓶颈.由于每个节点都可以成为锁管理者,因此存在于集中式锁管理器中的通信问题、内存瓶颈消除.3.3 采用了任务主机对锁进行集中管理的方式,系统实现简单.3.4 减轻了网络负担.每个从任务进程在申请锁时,只需要点对点通信,减轻了网络负担.参考文献:[1](美)D oree L.G alli,许良贤等译.机分布式操作系统原理与实践.机械工业出版社,2003.[]V S T,陈向群等译现代操作系统机械工业出版社,(责任编辑 白海龙)..2ndre.an enbaum..1999.0 4。

分布式互斥算法的研究与改进

0d 舶c s h r i l Is I , e s t e c t a e 0 ic s n |o o s , b s d o e dn s 芦 a d p s i tk n n te c mp tr n t r i - y cu n u l  ̄ y a e n s n ig mes n a s o e s i h o ue e r wok w t r h 0 rq le m t o gc l  ̄ u tr ,b t lo c mme d b y rs le te fi r-e o e y po lms e t  ̄ b h s f e u s n o e , e urn n r o i ' u e u s o f l ab c a n a l e ov h l e rc v r rb e al au s y te l s o q e ta d tk n o r
胡吉 明 , 毕 伟
( 河海大学计算机及信 息工程 学院, 江苏 南京 209 ) 10 8 摘 要 : 几种基于令牌算法的基础上 , 出了一个 对网络逻辑结构无要 求的分布式互斥算法。算法不但 能 够在 逻辑 结构 在 提
无要求 的计 算机 网络 中通过发 送消息和传递 令牌 来同步对 临界 资源的访 问, 而且 可以很好地解决请 求丢失 、 牌丢 失等 令 问题 。通过 对算 法的性 能进行 分析验证 了该 算法是 高效 的, 并给出了正确性证 明。 关键词 : 分布式互斥算法 ; 令牌 ; 临界资源 ; 临界 区 中图分类号 :P0 . T 316 文献标识码 : A A k n b s d Diti u e u u lEx l so g rt m To e - a e srb t d M t a cu i n Al o ih
ee h loi m f r i rv d p r r n e a d te c r cn s f h loi m l r v d r .T e ag r h o es mp o e ef ma c n or te so t e a r h i a o p o e . t o h e g t s s Ke r s d 蜘 n d muu le du in a o tm;o e ; r ia rs uc ; r ia e d n y wo d : i e ta x so l r h t n ci c l e o re c ic lsc 0 gi k t t

分布式操作系统复习大纲

分布式操作系统复习大纲在全面复习的基础上,注意掌握下列内容(一)分布式操作系统(0)分布式操作系统的定义文献中已经给出分布式系统的各种定义,没有一个是满意的并且没有一个为其他所同意。

为此,给出一个松散的特征就够了。

Tanenbaum给出如下定义:A distributed system is a collection of independent computers that appearsto its user as a single coherent system.(1)分布式系统的体系结构类型Tanenbaum和Renesse将分布式系统分成五类:❑小型机类型(minicomputer model)❑工作站类型(workstation model)❑处理机池类型(processor pool model)❑工作站-服务器类型(workstation-server model)❑混合类型(hybrid model)(2)构造分布式操作系统的途径⑴从头开始;⑵修改、扩充式;⑶层次式。

(3)分布式操作系统的层次结构一个分布式操作系统大致可分成四层,由内向外依次是:①执行层;②进程通信层;③服务支持层;④用户接口层。

(4)多机,网络和分布式操作系统间差别(5)透明性(Transparency)意义(6)分布式计算机系统的资源管理⑴从单个资源与多个管理者的相互关系❑全集中管理方式即专制(autocratic)管理❑功能分布管理方式即分担管理或分割(partitioned)管理❑浮动管理方式即轮流(successive)管理❑全分散管理方式即民主(democratic)管理⑵从多个资源与多个管理者的相互关系①集中:所有资源属一个管理者管理。

②分管:每一资源只属一个管理者管理。

③部分管理:每一资源属于若干管理者管理。

④合管:每一资源属于全部管理者共同管理。

⑶从实用的角度⑷分布式计算机系统的资源管理的算法①招标(投标)算法②回声算法③由近及远算法(7)分布式操作系统的同步算法⑴偏序Happened-Before关系(筒称HB)的定义:⒈a → b①若a和b是同一进程中的两个事件,且a在b前发生;或者,②若a是一进程中发送消息的事件,b是另一进程中接收同一消息的事件。

分布式互斥算法

分布式互斥算法一、引言在分布式系统中,多个节点并行地执行任务时,需要保证各个节点之间的互斥访问,以避免数据不一致和冲突。

分布式互斥算法就是为了实现这一目标而设计的。

本文将介绍分布式互斥算法的基本原理和常用的实现方法。

二、基本原理分布式互斥算法的基本原理是通过协调各个节点之间的操作,使得在任意时刻只有一个节点可以访问共享资源。

为了实现这一目标,需要满足以下要求:1. 互斥性:在任意时刻,只有一个节点可以访问共享资源。

2. 正确性:任意节点都有机会访问共享资源,而不会出现饥饿现象。

3. 容错性:即使在节点故障或网络异常的情况下,系统仍能正常运行。

三、常用的分布式互斥算法1. 令牌环算法令牌环算法是一种常见且简单的分布式互斥算法。

它基于一个环形的令牌,只有拥有令牌的节点才能访问共享资源。

当一个节点完成访问后,将令牌传递给下一个节点。

这样,系统中只有一个节点可以拥有令牌,从而实现互斥访问。

2. 选举算法选举算法是另一种常见的分布式互斥算法。

它通过选举一个主节点来实现互斥访问。

节点之间通过消息传递进行选举,每个节点都有一个优先级,优先级最高的节点成为主节点,其他节点成为从节点。

只有主节点才能访问共享资源,其他节点需要等待主节点释放资源后才能访问。

3. 基于时间戳的算法基于时间戳的算法是一种基于逻辑时钟的分布式互斥算法。

每个节点都有一个时间戳,当节点要访问共享资源时,需要先获取全局最小时间戳。

只有获得最小时间戳的节点才能访问共享资源,其他节点需要等待。

四、分布式互斥算法的应用场景1. 分布式数据库在分布式数据库系统中,不同节点需要对数据库进行读写操作。

分布式互斥算法可以保证同时只有一个节点可以对数据库进行写操作,避免数据的不一致性。

2. 分布式文件系统在分布式文件系统中,多个节点需要同时访问共享文件。

分布式互斥算法可以保证在任意时刻只有一个节点可以访问文件,避免冲突和数据丢失。

3. 分布式计算在分布式计算系统中,多个节点同时执行计算任务。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[摘要]本文主要介绍了分布式操作系统中的分布式互斥算法和令牌环互斥算法,并着重针对几种不同的令牌环算法分析了它们算法的正确性,最后还讨论了各个算法的性能并加以比较。

[关键词]分布式操作系统令牌环互斥算法引言分布式互斥是随着分布式系统的出现而出现的,并随着分布式系统理论发展而发展。

因此,和分布式系统的体系结构发展史类似,分布式互斥的发展经历了如下几个发展阶段。

(1)完全中心式算法。

在该类算法中,一个节点被指定为控制(裁决)节点,它控制对所有共享对象的访问。

当任何进程请求对一个临界资源进行访问时,就向本地资源控制进程发送一个请求消息,该进程接着向控制节点发送一个请求消息。

当共享对象可用时,将返回一个应答消息。

当进程结束使用资源后,向控制节点发送一个释放消息。

这类算法有两个共同点,其一是只有控制节点能控制资源的分配,其二是所有需要的信息都集中在控制节点中,包括所有资源的实体和位置以及每个资源的分配状态。

完全中心式算法实现简单,控制也很方便,但存在以下缺点:如果控制节点崩溃,则互斥机制终止,同时由于所有请求资源的进程都需与控制节点交换消息,因此,控制节点可能存在通信瓶颈。

,(2)局部中心式算法。

由于完全中心式算法可能出现的控制节点容错问题与通信瓶颈问题,人们采取了相应措旌以期解决或缓解这些问题给整个系统带来的影响。

因此出现了局部中心式算法。

局部中心式算法是将各临界资源按一定规则分为几个区域,每个区域包含一定数量的临界资源和一个中心控制点。

任何需要请求某临界资源的进程都需向该l晦界资源所在区域的中心控制节点发送请求消息并由该控制节点安排进程访问临界资源的次序。

该类算法具有多个控制点,各控制点间互不干涉,每一个控制节点故障只影响系统内节点对该控制节点管理区域内的临界资源访问,不会对非该区域内资源的访问造成影响。

因此可以缓解完全中心式算法的控制节点容错问题与通信瓶颈问题。

(3)局部分布式算法。

局部中心式算法虽然缓解了其完全中心式算法的控制节点容错及通信瓶颈问题,但并未使这些问题得到解决。

特别是随着通信技术的发展,节点间的通信带宽已经能够较大程度满足互斥的消息通信要求,因此使中心式算法的控制节点容错变得更加重要。

因此,人们将局部中心式算法中互不干涉的控制节点改为互相备份的方式。

当一个控制节点失效时,其控制的资源将转向其备份的控制节点,使得互斥能够继续进行。

该类算法继续发展,出现了多点共同决策的资源访问模式,即任何一次的关键资源访问,不再是由唯一的一个控制节点决定,而是由所有控制节点共同决定。

因此申请访问临界资源的节点不再只是向唯一的资源控制节点发送请求消息,而是需要向所有控制节点发送请求消息。

当所有控制节点都同意申请节点的请求时,申请节点获得临界资源访问机会。

因为多点控制使得节点间需要交换的消息数量增加,同样可能出现通信瓶颈,因此该类算法是在通信技术发展到一定阶段的产物。

该类算法在解决控制节点容错方面具有较好的性质。

(4)完全分布式算法。

局部分布式互斥算法虽然使得分布式互斥的控制节点容错问题得到了一定解决,但其容错能力不高,并增加了互斥所需的消息量。

因此,LamportⅢ提出了完全分布式互斥的概念,并对分布式系统的消息排序进行了深入研究。

Maekawa”3对完全分布式算法的对称性特性作出了如下刻画。

1)所有节点具有相同的信息量;2)所有节点只能掌握完整系统的部分情况,且必须基于这一信息作出决定;3)所有节点对最终决定承担相同责任;4)所有节点在对最终决定的影响上付出相同的努力;5)一个节点的故障从整体上不会导致整个系统的崩溃:6)不存在系统范围的共同时钟来规范时间的定位与排序。

其中第2)点是属于可选项,因为有些分布式互斥算法要求任何节点都要将自己所知道的所有信息通告系统内其他节点,这样,如果忽略通信延迟,则任何节点都将知道系统的全局信息。

当然,由于通信延迟的影响,节点不可能知道全局最新信息,因此,也可以说任何节点只能掌握系统的局部信息。

完全分布式互斥算法在节点的容错能力上比前面三种算法提高了很多,但同样提高了决策所需交换的信息量。

当然,随着通信技术的发展,节点间的通信带宽将大大增加,虽然节点的通信瓶颈仍可能在一定条件下存在,但其几率已有很大程度下降。

因此,研究如何降低消息复杂度,如何降低同步延迟以及提高节点与通信容错能力,成为完全分布式互斥研究的三个重要方向。

完全分布式互斥的算法发展又可以分成如下三个阶段。

1) 起步阶段。

该阶段以LamportⅢ算法为基础,以Ricart&Agrawala”。

算法与Maekawa乜1算法为标志,将分布式互斥算法从集中控制或非完全分布式互斥阶段推进到完全分布式互斥阶段。

2) 特殊发展阶段。

在以上三类算法的基础上,在二十世纪八十年代后期到九十年代初,随着分布式系统的发展,出现了几种完全分布式互斥算法。

它们改进了Maekawa乜1算法的各项性能指标,对分布式互斥算法的发展起到一定推动作用。

这一时期的分布式互斥算法与Maekawa。

1算法类似,都以研究特定系统规模条件下请求集的生成算法为主。

3) 全分布式互斥阶段。

从二十世纪九十年代后期开始,分布式互斥算法不再仅仅是实验室中学术讨论的课题和纸上谈兵的目的,而是存在了实际需要。

如何在上述全分布式互斥特性条件下,设计完全保证这些特性的分布式互斥算法,成为这一时期的主要课题。

四类算法都是在一定历史条件下出现的,并没有哪类算法在性能上占绝对优势,都在一定条件下具有相对优势。

因此,在合适的条件下选择合适的算法,是分布式互斥应用的一个重要研究课题。

1~互斥算法概述(1)分布式算法分布式互斥算法的讨论最早始于1978年Lamport关于时钟同步的论文中,后来有人对它做了进一步的改进,本文所描述的算法即是改进后的算法首先我们介绍该算法正确应用的假设前提:a)不限定逻辑结构的同构或异构计算机集合,其中每台计算机上有一个竞争使用临界资源的进程;b)完全无错网,即消息不会丢失和传输无延迟,并且消息按发送的先后顺序到达,算法的核心思想如下:a)当进程想进入临界区时,要建立一个包括进入的临界区名字~处理器号和当前时间的消息,并把消息发送给所有其它进程b)当进程接收到另一个进程的请求消息时,将分下面三种情况来区别对待:1)若接收者不在临界区中,也不想进入临界区,就向发送者发送OK消息;2)若接收者已经在临界区内就不必回答,而是负责对请求消息排队;3)若接收者要进入临界区但还没进入,它就会把接收的消息和它发送的消息的时间戳进行对比,取小的那个,如果接收的消息时间戳小,就发OK消息,如果发送的消息时间戳小,那么接收者负责排列请求队列而不发送任何消息G)当进程接收到允许消息时,它就进入临界区,从临界区退出时,向队列中的所有进程发送OK消息并将自己从队列中删除该算法可以保证访问临界区的互斥性以及无死锁进程~无饥饿程,但是这种算法有个严重的缺点是算法太复杂并且不健壮,任何一个进程崩溃都会影响到算法的正确性(2)令牌环算法令牌环算法是一种完全不同于分布式算法的互斥算法。

该算法的实现不仅需要分布式算法中所介绍的假设性前提外,还需要用软件的方法把所有竞争访问同一临界区的进程构造成一个逻辑环,环中的每个进程都有一个逻辑地址,这样进程就会知道它的下一个进程是谁。

算法的核心思想如下:a)令牌绕环运动,它从进程k传递到进程k+1 传递方式以点到点的方式;b)当进程从它的前一个邻居手中得到令牌时,将分以下两种情况处理自己的操作:1)该进程正打算访问临界区,于是它就进入做它自己的工作;退出临界区时,再将令牌传递给它的下一个邻居2)该进程并不想进入临界区,于是它将令牌传递给下一个进程该算法的正确性是显而易见的,但是这种算法也存在一些问题,比如说当令牌丢失时,需要重新生成,可是如何检测令牌丢失又是一个困难的问题,还有,如果环中的一个进程崩溃,那么环的连贯性就遭到破坏,算法也就会出现麻烦。

2~几种分布式令牌环算法以上我们分别介绍了分布式算法和令牌环算法的基本思想,由于这两种算法各有优缺点,于是出现了一种的互斥算法:分布式令牌环法分布式令牌环算法把上述两种互斥算法的优点集于一身,大大提高了算法性能上的优势,下面我们将集中讨论几种分布式的令牌环算法(1)基于优先级排序的分布式令牌环算法基于优先级排序的分布式令牌环算法要求访问临界区的请求消息按进程的既定优先级进行排序优先级高的请求先得到服务[26]它对运行环境做了如下假设: a)不限定分布式系统的拓扑结构,其中每台计算机上要有一个竞争使用临界资源的进程;b)消息在传输过程中不会丢失,并且消息按发送的先后顺序到达。

算法的核心思想如下几点:1)请求采用广播方式传给集合中的每个进程并同时告知请求进程的优先级别;2)系统中只有一个节点拥有令牌只有获得令牌的进程才允许进入临界区;3)持有令牌的进程只在运行于临界区时才处理到达的请求将其置于请求队列C 中 C按优先级排序;4)运行在临界区的进程在退出临界区时将C队列中的内容直接附接在令牌持有队列P之后删除P队列的头记录再将P队列随令牌一起发往P中所记录的下一个节点通过这种方式该算法保证了互斥~无死锁~无饥饿的特性下面我们就来详细介绍该算法的以上特性是如何得到保证的首先因为系统在任何时刻都只有一个节点拥有令牌并且只有获得令牌的进程才允许进入临界区这样就保证了对临界区访问的互斥性其次由于只有持有令牌的进程才能处理到达的请求并把它们置于请求队列中这样能保证进程申请资源的有序性即按照在队列中的先后顺序访问临界区满足了无死锁的条件最后9由于退出临界区的进程是将队列的内容直接附接在令牌持有队列p之后9而不是按优先级重新排序并合并起来9所以p队列中的低优先级进程一定会在队列中的高优先级进程访问临界区之前先得到执行9有效的避免了进程的饥饿0(2)两层结构的分布式令牌环算法两层结构的分布式令牌环算法是适用于多个节点网络的互斥算法,下图1给出了系统逻辑结构的一个简单图示,本算法把整个广域网系统组织成如下的两层逻辑结构:局域网是低一个层次,每个局域网中包含若干个局部进程和一个协调进程,局部进程在逻辑上组成一个环形结构,在每个环形结构上有且只有一个局部令牌 i按顺时针方向不断从一个局部进程传递到另一个局部进程每个局域网中的协调进程通过远程网络互相通讯,也按同样的方式组织成全局的逻辑环形结构,这个全局环是第二个层次,在这个全局环上也有且仅有一个全局令牌按顺时针方向不断传递相应于这种两层的逻辑结构,本算法包括局部进程的算法和协调进程的算法,局部算法的核心思想是:1)若局部进程p收到局部令牌 i并且它不要求进入临界区,这时就把 i直接传递给后续局部进程2)若局部进程p收到局部令牌 i并且它要求进入临界区,这时就向本地的协调进程Ci发送一个请求全局令牌的消息3)本地协调进程Ci在收到该请求消息后,一旦获得全局令牌就把发送给p4)p在获得局部令牌 i和全局令牌后,才能进入临界区,并在完成临界区操作后,将局部令牌 i传递给下一个局部进程,将全局令牌返回给Ci;协调进程的算法核心思想是:当协调进程收到全局令牌时,它会分以下3种情况处理:1)如果全局令牌来自协调进程且没有本地的局部进程请求进入临界区,那么就直接将全局令牌传递给下一个协调进程2)如果全局令牌来自协调进程且有本地的局部进程请求进入临界区,那么就将全局令牌传递给该请求进程3)如果全局令牌由本地的局部进程返回,那么就将全局令牌传递给下一个协调进程由上述描述我们清楚的发现局域网内和全局环上都采用的是令牌环的互斥算法,下面我们就利用令牌环算法的性质来证明本算法的正确性:首先,由于只有一个全局令牌,而只有获得全局令牌的进程才能进入临界区,这就保证了任何时刻都只有一个进程才能进入临界区,即在整个系统中保证了对临界区的互斥操作。

相关文档
最新文档