死锁与安全状态的关系是
1、这个可能是系统在给任务分配资源的时候会先判断系统剩余资源数量是否大于等于任务执行尚需资源数量。如果满足则分配资源,执行该任务,如果不满足,则等待,选择其他任务执行。
2、安全状态:是指系统能按照某种进程顺序(P1,P2,…Pn),来为每一个进程Pi分配其所需要的资源,直到满足每个进程对资源的最大需求,使每个进程都可顺利地完成。如果系统无法找到这样一个安全序列,则称系统处于不安全状态。
3、≤i≤n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj (j i )当前占有资源量之和。如果存在一个由系统中所有进程构成的安全序列P1,…,Pn,则系统处于安全状态。安全状态一定是没有死锁发生。
4、如果系统处于 安全状态 ,就 一定不会发生死锁 。如果系统进入了不安全状态未必一定发生死锁,但是发生了死锁一定是在不安全状态。
5、不清楚你使用的是什么系统,而且也不清楚是何种“不安全状态”,我按照自己的一些经验来说一下,希望能对你有所帮助。
6、死锁的防止是系统预先确定一些资源分配策略,进程按规定申请资源,系统按预先规定的策略进行分配从而防止死锁的发生。
用银行家算法判断下述每个状态是否安全
用银行家算法判断下述每个状态是否安全。如果安全,说明所有进程是如何能够运行完毕的。如果不安全,说明为什么可能出现死锁。
从上述分析中可以看出,此时存在一个安全序列{P0,P3,P4,P1,P2},故该状态是安全的。
根据银行家算法(试探性分配之后验证系统所处的状态是否安全):进程p1申请资源(2,2,1)时,如果分配,那剩余资源为(2,0,1),此时有没有被死锁的进程(如p2),系统是安全的,所以能满足。
为什么银行家算法避免死锁的发生
作为避免死锁的一种算法,银行家算法可以说是最为出名的了。这个名字的来源是因为该算法起初是为银行系统设计的,以确保银行在发放现金贷款时,不会发生不能满足所有客户需要的情况。在操作系统中也可以用它来实现避免死锁。
死锁的预防是通过破坏产生条件来阻止死锁的产生避免死锁采用的是允许前三个条件存在,但通过合理的资源分配算法来确保永远不会形成环形等待的封闭进程链,从而避免死锁。
银行家算法是一种最有代表性的避免死锁的算法。要解释银行家算法,必须先解释操作系统安全状态和不安全状态。















