分布式系统课程报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分布式系统课程报告 题目:分布式系统中的死锁 姓 名: 张叶红 学 号: 1080310506 所学专业: 计算机科学与技术学院 目录 1. 死锁的概念 3 1.1 什么是死锁 3 1.2 死锁产生的条件 3 1.3 死锁的图论模型 3 2. 分布式死锁的预防 4 3.1等待—死亡方案(wait-die scheme)。 4 3.2伤害—等待方案(wound-wait scheme)。 5 3. 分布式死锁的检测 5 3.1 概述 5 3.2 分布式死锁检测算法 6 4.2.1超时法 6 4.2.2 AND 模型下Chandy、Misra 和Hass 算法 6 4.2.3 基于优先级动态分配的分布式死锁探测方法 7 4.2.4 Agent Guard死锁检测算法 7 4. 总结 8 5. 参考文献 8 死锁的概念 什么是死锁 所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。 互斥:互斥是一种资源分配方式,保证同一个资源在同一时刻最多只能被一个进程占用,它用于防止多个进程同时共享访问不可同时共享访问的资源。 不可剥夺的资源分配:系统将一个资源的访问权分配给某一个进程后,系统不能强迫该进程放弃对该资源的控制权。 占有并等待:必然有一个进程占用了至少一个资源,同时在等待获取被其他进程占用的资源。 循环等待:在等待图中有一个循环路径 死锁的图论模型 等待图 在等待图中,节点代表进程,当且仅当进程Pi等待一个被进程Pj所占用的资源时,边(Pi, Pj)存在于等待图中,图中的边是有向的。 资源分配图 资源分配图中的节点有两种:一种是进程节点,另一种是资源节点。每个边是一个有序对(Pi, Rj)或(Rj, Pi),其中P代表进程,R代表一个资源类型。边(Pi, Rj)表示进程Pi请求类型为Rj的一个资源,并且正在等待这个资源,一个资源类型中可能有多个资源。边(Rj, Pi)表示类型为Rj的一个资源已经分配给进程Pi。如图1所示: 图1:资源分配图 由于等待图假定一个资源类型中只有一个资源,所以资源分配图是一个比等待图更加有力的工具。 分布式死锁的预防 死锁的预防方法总的来说就是限制请求,保证4个死锁条件中至少有1个不能发生,从而预防死锁。 死锁预防策略在集中式系统中广为使用,并且有多种算法。但是在分布式系统中很少使用。这是因为在分布式系统中没有全局时钟,检查安全转台涉及到的大量进程和资源的计算会引起昂贵的开销。因此这里仅对分布式死锁的预防进行简单介绍。 在分布式系统中,每个进程的优先级基于一个固定的时间戳。用户通过运行事务来访问数据库中的数据对象。每个数据对象可以看作一个资源, 而每个事务可以看作一个进程。一个事务是对一个数据对象集合的一系列读和写操作。一个事务在更新数据之前必须取得所有的数据对象(通过加锁),并且在完成操作之前必须释放它们。加锁策略用以预约访问权限, 从而阻止其他事物取特定的锁。分布式系统的死锁预防主要有以下两种方法: 3.1等待—死亡方案(wait-die scheme)。 该方案是基于非剥夺方法。当进程Pi请求的资源正被进程Pj占有时,只有当Pi的时间戳比进程Pj的时间戳小时,即Pi比Pj老时,Pi才能等待。否则Pi被卷回(roll-back),即死亡。一个进程死亡后会释放它所取得的锁。 3.2伤害—等待方案(wound-wait scheme)。 它是一种基于剥夺的方法。当进程Pi请求的资源正被进程Pj占有时,只有当进程Pi的时间戳比进程Pj的时间戳大时,即Pi比Pj年轻时,Pi才能等待。否则Pj被卷回(roll-back),即死亡。 只要一个进程被回卷时, 它不会被赋予新的时间戳, 两种方案都能避免活锁。由于时间戳总是增加, 被回卷的进程最后将具有最小的时间戳。 分布式死锁的检测 概述 Knapp 将分布式死锁检测的算法分为以下4类: 路径推动算法: 在每个站点建立形式简单的全局等待图。每当进行死锁检测时, 各个站点就将等待图的拷贝送往一定数量的邻接站点。局部拷贝更新后又被传播下去。这一过程重复进行指导某个站点获得了足够的信息来构造一个等待图以便做出决定。但是这类算法许多是错误的。主要原因是传输过程中的部分等待图并不能代表整个全局等待图, 因为各个站点采集数据的方法是异步的。 边跟踪算法: 分布式网络结构图中的回路可以通过沿图的边传播一种叫探测器的特殊

您可能关注的文档

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档