操作系统之进程管理:19、死锁的处理策略:避免死锁(银行家算法)

    科技2024-01-21  105

    19、死锁的处理策略:避免死锁

    思维导图安全序列例银行家算法实现步骤银行家算法的实现

    思维导图

    安全序列

    来看这样的情况: 由上述表格可知,B仍需50,A仍需30,T仍需20,我手中剩余40 方案一: 我将30借给B,我手中剩余10;B仍需20,A仍需30,T仍需20;此时我手中剩余的钱借给谁都满足不了他们的需求;不安全 方案二: 我将30借给A;A满足后将所有钱归还,此时我手中剩余50; 然后将50借给B;B满足后将所有钱归还,此时我手中剩余70; 然后我在将20借给T;T满足后将所有钱归还;此时手中剩余100; 这样都达到了B、A、T的需求;安全;序列为:A->B->T(不唯一,满足即可)。我们称这样一个序列为安全序列。

    如果系统处于安全状态,就一定不会发生死锁。如果系统进入不安全状态,就可能发生死锁。(处于不安全状态未必死锁,但死锁一定处于不安全状态)

    剩余资源数:(3,3,2) 第一次分配:P1,满足;释放后剩余:(5,3,2) 第二次分配:P3,满足;释放后剩余:(7,4,3) 第三次分配:P0,满足;释放后剩余:(7,5,3) 第四次分配:P2,满足;释放后剩余:(10,5,5) 第五次分配:P4,满足;释放后剩余:(10,5,7) 安全序列:P1–P3–P0–P2–P4(不唯一)

    银行家算法实现步骤

    银行家算法的实现

    Processed: 0.015, SQL: 8