zoukankan      html  css  js  c++  java
  • 分布计算系统学习随笔 第六章分布式系统中的死锁

    6.1

    1、死锁发生的条件:

    1) 互斥。正如我们第五章所讨论的,互斥是一种资源分配方式,保证同一个资源在同一时刻最多只能被一个进程占用,它用于防止多个进程同时共享访问不可同时共享访问的资源。

    2) 不可剥夺的资源分配。系统将一个资源的访问权分配给某一个进程后,系统不能强迫该进程放弃对该资源的控制权。

    3) 占有并等待。必然有一个进程占用了至少一个资源,同时在等待获取被其他进程占用的资源。

    4) 循环等待。在等待图中有一个循环路径。

    2、处理死锁的策略死锁:

    可以使用PAID来概括死锁处理的各种方法:预防(Prevent)、避免(Avoid)、忽略(Ignore)和检测(Detect) 。

    1)预防死锁。通过限制请求,保证四个死锁条件中至少有一个不能发生,从而预防死锁。

    2)避免死锁。如果资源分配会导致一个安全的结果状态,就将资源动态地分配给进程。如果至少有一个执行序列使所有的进程都能完成运行,那么这个状态就是安全的。

    3)忽略死锁。忽略死锁是UNIX常采用的一种方法,这种方法只是简单地忽略死锁问题。

    4)检测死锁和从死锁中恢复。允许死锁发生,然后发现并解除死锁。

    3、死锁的AND条件和OR条件:

          资源死锁和通信死锁:在通信死锁中,进程等待的资源就是报文。资源死锁和通信死锁的真正区别在于资源死锁通常使用AND条件,而通信死锁通常使用OR条件。

          所谓AND条件就是当进程取得所有所需资源时,它才能继续执行;所谓OR条件就是当进程得到至少一个所需资源,它就能继续执行。

          在使用AND条件的系统中,死锁条件是在等待图中存在回路。但是在使用OR条件的系统中,等待图中的回路未必会引发死锁。在使用OR条件的系统中,死锁条件是存在结(knot)。一个结K是一个节点集合,对于K中的任何节点a,a能到达K中的所有节点,并且只能到达K中的节点。

    6.2

    1、基于时间戳的预防死锁方法:

    包括两种死锁预防方案。这两种方案相互补充,这种方法常用于分布式数据库系统中。

    1)等待—死亡方案(wait-die scheme)。该方案是基于非剥夺方法。当进程Pi请求的资源正被进程Pj占有时,只有当Pi的时间戳比进程Pj的时间戳小时,即Pi比Pj老时,Pi才能等待。否则Pi被卷回(roll-back),即死亡。

    2)伤害—等待方案(wound-wait scheme)。它是一种基于剥夺的方法。当进程Pi请求的资源正被进程Pj占有时,只有当进程Pi的时间戳比进程Pj的时间戳大时,即Pi比Pj年轻时,Pi才能等待。否则Pj被卷回(roll-back),即死亡。

    6.3

    1、Mitchell-Merritt算法与Chandy-Misra-Hass算法的区别:

          其限制是每个进程每次只能请求一个资源。 探测报文在等待图中,沿等待方向的相反方向传送,这样的图叫反向等待图(reversed wait-for graph)。 每当进程收到探测报文时,它将自己的标识符和探测报文发起者的标识符相比较,如果自己的标识符大于探测报文发起者的标识符,它就用自己的标识符取代探测报文发起者的标识符,自己变成探测报文的发起者。 当几个进程同时发起死锁检测时,只有一个进程能够成为唯一的探测者。

  • 相关阅读:
    HDU 5835 Danganronpa 贪心
    HDU 5842 Lweb and String 水题
    HDU 5832 A water problem 水题
    Codeforces Beta Round #14 (Div. 2) A. Letter 水题
    Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem K. UTF-8 Decoder 模拟题
    Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem I. Alien Rectangles 数学
    Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem H. Parallel Worlds 计算几何
    Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem F. Turning Grille 暴力
    Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem C. Cargo Transportation 暴力
    Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem G. k-palindrome dp
  • 原文地址:https://www.cnblogs.com/bxyan/p/4682574.html
Copyright © 2011-2022 走看看