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

合集下载

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

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

分布式系统复习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.摘要互斥能有效解决分布式系统中的资源申请的相互冲突并实现资源共享,本文首先简要介绍了分布式异步系统中互斥算法的一些基本要求及评价标准。

并介绍单令牌环算法和双令牌环算法的算法思想及存在的不足,分析了双令牌环算法的两种无法及时检测失效的情况,并在这两种问题的基础上,提出了一种容错性能相对较好的双令牌算法。

2.分布式互斥分布式进程常常需要协调他们的动作。

如果一组进程共享一个或一组资源,那么访问资源时,常需要互斥来防止干扰和保证一致性。

这就是在操作系统领域中熟悉的临界区问题。

然而,在分布式系统中,一般来说共享变量或者单个本地内核提供的设施都不能被用来解决这个问题。

我们需要一个分布式互斥的解决方案:一个仅基于消息传送的解决方案。

这也促成了互斥算法的发展。

互斥算法考虑无共享变量的N个进程P,i=1,2,...,N的系统。

这些进程只在临界区访问公共资源。

为简单起见,我们假定只有一个临界区。

可以很容易的把我们将要介绍的令牌环算法拓展到多个临界区。

我们假设系统是异步的,进程不出故障,并且消息的传递是可靠的,这样任何传递的消息最终都被完整的发送恰好一次。

执行临界区的应用层协议如下:Enter() //进入临界区——如必要则阻塞Resource Accesses() //在临界区访问共享资源Exit() // 离开临界区——其他进程现在可以进去我们对互斥的基本要求如下:ME1: (安全性) 在临界区(CS)一次最多有一个进程可以执行。

ME2:(活性)在进入和离开临界区的请求最终成功执行(既无死锁,也无饥饿)。

ME3:(顺序性) 如果一个进入CS的请求发生在先,那么进入CS仍按此顺序(先请求先服务)。

我们按下列标准评价互斥算法:①消耗的带宽,与在每个进入和退出操作中发送的消息数成比例;②每一次进入和退出操作由进程导致的客户延迟;③算法对系统吞吐量的影响,这是在假定后续进程间的通信是必要的条件下,进程整体访问临界区的比率。

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

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

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

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

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

(1)完全中心式算法。

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

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

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

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

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

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

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

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

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

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

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

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

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

(3)局部分布式算法。

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

分布式系统复习题及参考答案

分布式系统复习题及参考答案

关于分布式系统复习题与参考答案一、填空题(每题n分,答错个扣分,全错全扣g,共计m分)1.访问透明性是指对不同数据表示形式以及资源访问方式的隐藏。

而位置透明是用户无法判别资源在系统中的物理位置。

2. 迁移透明性是指分布式系统中的资源移动不会影响该资源的访问方式。

而复制透明是指对同一个资源存在多个副本的隐藏。

3. 一个开放的分布式系统就是根据一系列准则来提供服务,这些准则描述了所提供服务的语法和语义。

4. 集群计算系统一个突出的特征是它的同构性;它提供了最大限度的分布式透明性。

可用于单个程序在多台计算机上并行地运行。

5. 网格计算系统具有高度的异构性:其硬件、操作系统、网络、管理域和安全策略等都不尽相同。

6. 网格计算系统一个关键问题是如何把来自不同计算机组织的资源集中起来,使一组人或机构进行协调工作。

7. 分布式事务处理的四个特性是:原子性、一致性、独立性和持久性。

8. 分布式普适系统应用程序的需求归纳为三种,它们是:接受上下文的变化、促使自主合成、认可共享为默认行为。

9. 分布式系统体系结构样式很多,其最重要的有:分层体系结构;基于对象的体系结构、以数据为中心的体系结构以及基于事件的体系结构等四类。

10. 客户/服务器结构的应用程序通常划分为三层,它们是:用户接口层、处理层和数据层。

11. 在结构化点对点体系结构中覆盖网络是用一个确定性的过程来构成的,这个使用最多的进程是通过一个分布式哈希表来组织进程的。

12. 超级对等体通常是维护一个索引或充当一个代理程序的结点。

13. 分布式软件体系结构主要分集中式、非集中式和各种混合形式三大类。

其非集中式体系结构又分为结构化的点对点、非结构化的点对点、超级对等体三种。

14. 实现软件自适应的基本技术分为要点分离、计算映像和基于组件的设计三种类型。

15. 分布式的自主系统指的是自我管理、自我恢复、自我配置和自我优化等各种自适应性。

16. 一个线程独立地执行它自己的程序代码。

分布式系统练习题

分布式系统练习题

一、选择题概述1、下列哪项描述不是分布式系统的特性( C )A、透明性B、开放性C、易用性D、可扩展性3、下列描述正确的是( A )A、基于中间件的系统要比网络操作系统的透明性高√B、网络操作系统要比分布式操作系统的透明性高×C、基于中间件的系统要比分布式操作系统的透明性高×D、分布式操作系统可以运行在异构多计算机系统中4、从下面关于网络操作系统的原理图中可以看出( B )A、网络操作系统是紧耦合系统,因而只能运行在同构多计算机系统中×B、网络操作系统不要求各计算机上的操作系统同构√C、运行于网络操作系统之上的分布式应用程序可以取得很高的透明性×D、网络操作系统可以作为一个全局的单一的系统进行方便的管理×5、在网络操作系统之上采用中间件技术加入中间件层,主要可以( D )A、弥补网络操作系统在可扩展性方面的缺陷B、弥补网络操作系统在可开放性方面的缺陷C、提高网络操作系统的稳定性D、提高网络操作系统的透明性1、下列描述不是分布式系统目标的是( C )A、连接用户和资源B、透明性C、异构性D、开放性以及可扩展性。

2、下列系统中有共享内存的系统是( B )A、同构多计算机系统B、多处理器系统C、异构多计算机系统D、局域网系统3、下述系统中,能运行于同构多计算机系统的操作系统是( A )A、分布式操作系统B、网络操作系统C、中间件系统D、嵌入式操作系统4、多计算机系统的主要通信方式是( B )A、共享内存B、消息传递C、文件传输D、TCP/IP协议6、下列描述中,不属于C/S三层模型中是( C )A、用户界面层B、数据层C、通信层D、处理层2、透明度最高的操作系统是( A )A、多处理器分布式操作系统B、多计算机分布式操作系统C、网络操作系统D、基于中间件的操作系统3、下图所示典型C/S模型交互过程中,假设客户端是阻塞的,则其阻塞时间为( A? )A、T4-T1B、T4-T2C、T3-T2D、T3-T14、分布式系统的中间件协议位于网络通信协议体系的( D )A、传输层B、数据链路层C、网络层D、应用层6、C/S模型中,核心处理函数由哪一层实现( D )A、用户界面层B、数据层C、通信层D、中间层11、网络操作系统要求其管理的各计算机( B )A、硬件同构(不要求)B、通信协议一致或者相互兼容C、操作系统同构(不要求)D、安装相同的中间件1、分布式系统的透明性是指( B )A、用户不需要关心任何操作B、用户不需要关心系统实现的细节C、系统不需要关心用户的操作细节D、系统不需要关心用户的操作过程3、下列处理器与内存关系示意图中,属于多计算机系统结构的是( D?)A、B、C、D、4、中间件系统与分布式操作系统有比较好的 A ,与网络操作系统相比有比较好的 AA、可扩展性和开放性,透明性和易用性B、可扩展性和透明性,开放性和易用性C、透明性和易用性,可扩展性和开放性C、透明性和开放性,可扩展性和易用性17、透明度最高的系统是( C )A、网络操作系统B、中间件系统C、分布式操作系统D、松耦合系统5、中间件协议位于网络协议体系的( D )A、传输层B、会话层C、网络层D、应用层通信5、异步通信中,消息由客户进程首先送给( A? )A、服务器缓冲区B、服务器进程C、客户端缓冲区D、网络10、RPC中,客户调用的接口称为( A? )A、客户存根B、服务器存根C、远程对象接口D、消息接口14、电子邮件系统通信方式属于( B )A、暂时通信B、持久通信C、中间层通信D、RPC通信7、RPC通信过程中,服务器存根把服务器执行的结果打成消息包,提交给( A )A、服务器操作系统B、客户存根C、客户操作系统D、服务器( A? )6、RPC 通信中,客户存根和服务器存根都包含一组调用接口,它们是否包含这些接口的实现? ( D??? ) A 、客户存根包含,服务器存根不包含B 、都不包含C 、客户存根不包含,服务器存根包含D 、都包含进程8、下图为重复服务器与并发服务器组织方式。

分布式锁在分布式系统中的资源竞争和互斥访问的问题

分布式锁在分布式系统中的资源竞争和互斥访问的问题

分布式锁在分布式系统中的资源竞争和互斥访问的问题分布式系统是当今互联网应用中常见的架构模式之一,它具有高可用性、可伸缩性和容错性等优势。

但是,与此同时,分布式系统也面临着一些挑战,其中之一就是资源竞争和互斥访问的问题。

为了解决这个问题,分布式锁被广泛应用于分布式系统中。

一、资源竞争和互斥访问的问题在分布式系统中,由于多个节点同时访问共享资源,可能会出现资源竞争的情况。

例如,多个节点同时试图修改同一个数据记录,由于并发操作的存在,可能导致数据的一致性问题或者产生竞争条件。

为了避免这种情况的发生,需要对资源进行互斥访问,即同一时间只允许一个节点访问资源,其他节点需要等待。

二、分布式锁的作用分布式锁是一种用于在分布式系统中实现资源竞争和互斥访问的机制。

它可以保证在同一时间只有一个节点可以获得锁,其他节点需要等待。

当一个节点获得锁之后,可以对共享资源进行访问、修改或操作,其他节点则无法同时进行访问,从而保证了资源的一致性和互斥性。

三、分布式锁的实现方式1. 基于数据库实现在分布式系统中,常常使用数据库来实现分布式锁。

具体实现方式是创建一个数据库表,在该表中创建一个唯一索引,节点在获取锁时向数据库中插入一条记录,如果插入成功,则该节点获得锁,否则需要等待。

在节点完成访问之后,删除该记录,释放锁,其他节点才能获取到锁。

2. 基于缓存实现另一种常见的分布式锁实现方式是使用分布式缓存。

节点在获取锁时,在缓存中设置一个特定的标识,如果设置成功,则表示获得锁,否则需要等待。

当节点访问完成后,删除缓存中的标识,释放锁,其他节点可以获取到锁。

3. 基于ZooKeeper实现ZooKeeper是一个分布式协调服务框架,也可以用于实现分布式锁。

节点在获取锁时创建一个临时有序节点,如果创建的节点在所有节点的有序节点列表中排名第一,则表示获得锁,否则需要监听前一个节点的删除事件,当前一个节点删除时,则该节点获取到锁。

四、分布式锁的注意事项1. 锁的粒度要合理在设计分布式锁时,需要考虑锁的粒度。

分布式系统中互斥算法的研究

分布式系统中互斥算法的研究
论, 分析 了其特 点 , 最后 给 出了一 个 一互斥 问题 的 算 法 , 介 绍 了该 算 法应 满足 的 条 件和 实 并
现过 程 。
[算法; 算法 [ 文献标识码] A
[ 中图分类号] T 36 4 P1.
分布式计算系统是若干独立 自治的计算机系统的集合 , 是计算机 网络 的高级发展阶段 , 是近年来 计算机科学技术领域 中倍受青睐、 发展迅速 的一个方 向…。在分布式系统 中, 经常出现多个进程请求 访问同一个临界资源的问题 , 为了协调访问 , 保证访问的正确性( 无死锁 , 无饥饿现象) 分布式操作系 , 统必须处理相关进程之间的同步与互斥 , 互斥是分布式系统设计的关键问题 J 。因此 , 互斥 ( u a e- M t lx u c s n 在分布式系统 中也可以写成分布式的算法 ( ir u da ot , li ) uo Dsi t l rh tb e g im) 使电脑因故 障而停顿的机率 降低。本文在介绍了分布式系统 中非基于令牌的分布式互斥算法和基于令牌的分布式互斥算法的基础 上, 引人了 k 互斥算法 , 一 并详细 阐述 了 一 互斥算法应满足的条件和实现过程 。

则否 , 也就是说 , 有较 小 的时戳 , 就可 以进 入临界 区 L 。 谁 谁 4
Lm o 互斥算法为了请求资源 , a pr t 进程 P 发送带时戳的消息 r 给系统中的所有进程 , 包括它 自己: () 1任意进程 P 收到请求资源的消息时 , 将该消息按时戳顺序放在 自己的局部请求队列 中并发 回
想要进入临界 区, 则会送出 R q e 信息给其它的节点 , eus t 如果收到 R qet eus信息 的节点没有想要进入临
界 区, 则会送出 R p 信息给送 出 R qet el y eus信息的节点 . 如果此节点也想要进入临界 区时 .a pr提出 Im o , t 个解决的方法, 利用时戳 ( m s m ) t e a p 的技巧来决定谁可 以进 入临界 区, 节点会 比较 自己的时戳和 i t 此 收到 R qe 信息的时戳 , eus t 如果 自己的时戳较大 , 则会送出 R p 信息给送 出 R qet el y eus信息 的节点, 反之

第6章互斥问题和选举算法

第6章互斥问题和选举算法




(3)当进程释放该资源后,向所有被暂存的请求发送一 个确认消息并删除暂存队列。
Ricart和Agrawala互斥算法
• 要求分布式系统的所有事件是全序的,进程按请求的顺序 获得对公区的访问。 • 进程若未收到所有的应答,就表明有优先级更高的请求存 在。 • 交换的消息数量降至2(n-1)个
t11 t12
基于令牌的互斥算法
• R i c a r t和A g r a w a l a提出了进一步改进:进 入临界区的进程保留令牌。 • 初始时,令牌被赋予任意一个进程Pi。 • 进程 Pj通过向其他进程广播一个带时戳的消息来 请求令牌。 • 如果当前拥有令牌的进程 Pi不再需要使用临界区, 它就按照i+1, i+2, …, n, 1, 2, …, i-1的顺序搜 索其他进程 • 找出第一个进程Pj,满足条件:Pj最后一次请求令 牌的时戳大于在令牌中记录的 Pj最后一次拥有令 牌的时戳。 • 当满足以上条件时,Pi把令牌传递给Pj。
一个例子
改进的Lamport互斥算法
Ricart和Agrawala互斥算法
(1)当进程Pi需要占用公区时,向所有进程发送请求,对 于K-互斥问题,请求消息包括公区号、进程号和时间戳。 接收进程Pj收到请求消息后,执行如下操作: 如果Pj没有占用该公区也没有申请使用它,则向请求进程 发送一个确认消息。 如果Pj正在使用该公区,则不发送确认消息,暂存请求消 息。 如果Pj正在申请使用该公区,则比较请求消息时间戳与本 身请求时间戳的大小,时间戳小者优先。若Pi的时间戳小, 则Pj发送一个确认消息,若Pj的时间戳小,则Pi不发送确认 消息。 (2)当进程Pi收到所有其他进程发来的响应时,便可访 问该资源。
分布式系统中的互斥

多副本访问控制的分层结构分布式互斥算法

多副本访问控制的分层结构分布式互斥算法
了很大进 展。但这些算法都 以系统 中的全部节 点作为操作空 间 。分布 式系统 中对 象 的副本可 能很 多 , 此即使 是基 f Mak w 算法提 出的各种分布式互斥算法 ,其消息 复杂 度也 ea a 可能达到 O(0 ) 1 。对于广 域窄 问连接 的分布式系统 ,消息传 递所消耗 的通信 带宽不可忽略,甚至可能 耗尽 系统拥有 的通 信带宽 以前的分布 式互斥 算法都没有: 孑虑现 实系统的 自组织特 性 ,这些算法将 系统看成单一 层次的逻辑 结构。利用嘲络系 统 自组 织特性 ,在 第二层或更高层 次上实现 互斥 ,使 且斥 的’
中 分娄 I P9 圈 号 3 T 3
多副本访 问控 制 的分层 结构 分布 式互 斥算 法
李美安,刘心橙 , 王 征
( 电子科技大学计算 机学 院 8 1 研究 室,成都 6 0 5 ) 0( 1 10 4

要: 提出 了一种用于分布式系统 中多副本对象 访问控 制的分层结构分布式互斥 实现方法 ,町以显著 降低分布式系统中互斥访问算法的
消息复杂 度,并提 高了系统和算法 的容错能 力和稳定性 ,为构建超 大规模分布式系统 ,保证分布式 系统 中的多副本对 象的互斥和一致访『 H J
提供 了实现手 段。
关健诃 :分层 ;分布式 ;互斥
Hi r r h c l s rb t d M u u l cuso g rt m f c s e a c ia t i u e Di t a Ex l i n Al o ih o e s Ac
ads b tdss m t cesamutrpi be tT i mehd i rv stetl a c ea lo es s m adma e h loi m  ̄o ir ue yt oacs l—el aojc. hs to mpo e h e nedfut ft y t n k steag rh b me t i e i c or h e t

互斥算法实现 小结 -回复

互斥算法实现 小结 -回复

互斥算法实现小结-回复互斥算法实现,是在计算机科学中非常重要的一个主题。

它是为了解决同时访问共享资源可能导致的问题,保证在一个时间段内只有一个进程(线程)可以使用该资源。

本文将围绕着互斥算法的实现展开,一步一步解释相关的概念和实际应用。

首先,我们来了解一下互斥算法的概念。

互斥(Mutual Exclusion)指的是在同一时间内只允许一个进程访问共享资源,其他进程必须等待。

互斥算法主要有两个目标:互斥(Mutual Exclusion)和有限等待(Bounded Waiting)。

互斥目标确保只有一个进程可以进入临界区(Critical Section),而有限等待目标则保证在任意一个等待进入临界区的进程最终能够进入。

互斥算法的常见应用场景包括:多线程编程、并发控制和分布式系统等。

在这些场景下,多个进程(线程)可能需要并发地访问共享资源,如果没有互斥算法的支持,可能会出现数据竞争(Data Race)和死锁(Deadlock)等问题。

接下来,我们将介绍互斥算法的实现方法,并逐步详细解释每种方法的原理和应用。

常见的互斥算法有以下几种:1. Peterson算法:Peterson算法是一个经典的软件算法,用于两个进程之间的互斥。

该算法基于两个进程的两个状态变量和一个共享的布尔变量,通过自旋的方式实现进程的切换。

Peterson算法简单易懂,但仅适用于两个进程之间的场景。

2. Dekker算法:Dekker算法是对Peterson算法的扩展,可以支持任意数量的进程之间的互斥。

该算法使用一个轮询的方式,让各个进程按照特定的顺序获取互斥锁。

Dekker算法通过一个数组保存各个进程的状态,实现了多进程之间的互斥。

3. Lamport算法:Lamport算法是一个基于时钟的互斥算法,又被称为“望远镜算法”。

该算法使用逻辑时钟,根据进程的时间戳来判断进程的优先级,从而决定是否可以进入临界区。

Lamport算法实现了进程的有限等待,避免了死锁的发生。

一种分布式操作系统中k个资源的互斥算法

一种分布式操作系统中k个资源的互斥算法

I d h D 1 0l er
”Ol der A B




l derC ^ Ol
ቤተ መጻሕፍቲ ባይዱ
^ nuI I ^ D
I der uI F ol D n I ¨Ol E D der D
l derF D n D ol ull
C F 时 请 求 且 D 退 出 临 界 段 时 系 统 状 态 及 位 图 , 同 未
行 了验 证 .
【 关键词 】 分布 式 资源 互斥 :
1 算 法基本原理 、 3 实验 、
f) 1分布 式操 作 系 统 中结 点 组 织 成 一 棵 逻 辑 树 f 可 设 k 3 开 始 时 E结点 持有全 部令 牌 .各 结点 的 =且 能存 在 逻辑 环 , 但最 终 归 结 为逻 辑 树 ) 构 。 结 每个 结 点 状 态 如 图 所 示 : 维持周 围邻 居结点 的信息 f)每 个 结点 X 维 持 一 个 长 度 为 k的 一 维 位 图 2 H leX和 一个请求 队列 , 图所 示 : od r 如
10 0




21 第 1 0 0年 O期

种分布式 操作 系统 中 k个 资源 的互斥算 法
吴惠 民,柳 锋 ,候烨晨
(广 州海军兵 种指挥 学院 广 东 广 州 5 0 3 14 0)
【 摘
要 】 本 文针 对分 布 式操作 系统 中 k个 资源提 出一个 互斥 算法 . 出 了算 法的 步骤 . 用 实验进 : 给 最后



E结 点 持 有 全 吾: 牌 时 的 系 统 状 态 及 位 图 f 令
I derA D Ol D ^ D ^
  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)如果全局令牌由本地的局部进程返回,那么就将全局令牌传递给下一个协调进程由上述描述我们清楚的发现局域网内和全局环上都采用的是令牌环的互斥算法,下面我们就利用令牌环算法的性质来证明本算法的正确性:首先,由于只有一个全局令牌,而只有获得全局令牌的进程才能进入临界区,这就保证了任何时刻都只有一个进程才能进入临界区,即在整个系统中保证了对临界区的互斥操作。

相关文档
最新文档