一、产生死锁的原因:
操作系统中的死锁:
https://blog.csdn.net/jinjiniao1/article/details/92830672
P1和P2形成一个环形,所以我们说它产生了死锁,这个图也是不安全状态。因为当P2申请一台输入设备时,输入设备已经分配给了P1,这就导致P2一直处于申请状态,当输出设备要分配给P2的时候,P2在申请,输出设备也就一直等,如此循环死等。
二、产生死锁的条件和解决死锁的方法:
三、死锁避免和预防的区别:
死锁的预防是破坏产生死锁的四个必要条件之一,严格地防止死锁的出现。虽然增强了死锁产生的限制条件,却严重地影响了系统性能。而死锁的避免是在系统运行过程中注意避免死锁的发生,是系统对进程发出的每一个系统能够满足的资源申请进行动态检查,并根据检查结果决定是否分配资源,如果分配后系统不会发生死锁,则予与分配,否则,不予分配,需要清楚的是,即使死锁的必要条件存在,也不一定发生死锁。
四、安全状态和安全序列:
在做上例之前,需要注意的是,剩余资源是给进程中尚需要量的:
有进程P1、P2和P3三个,目前占有量分别是:2、5、2;最大需求量是:9、10、4;尚需要量:7、5、2;系统剩余资源量是:3;
三个进程中P3的尚需要量是最低的所以先从P3开始,从剩余资源量中拿出2个资源给P3,还剩下1个;
P3就有4个资源,满足最大需求量,可以完成进程,完成后4个资源全部返回。此时,剩余资源有5个,全部给P2,完成后全部返回,剩余资源量有10个,在给7个资源给P3,P3完成后返回,至此所有进程圆满完成。
故,该状态存在安全序列:P3、P2、P1,该状态安全。
五、银行家算法:
系统剩余资源有:3、3、2对应:A、B、C
其中P1、P2、P3、P4、P5五个进程,从上往下数,剩余资源满足P2,所以从P2开始,给出资源1、2、2,剩余:2、1、0,P2满足最大需求量,可以完成,完成后全部返回,剩余资源剩余:5、3、2;不满足P3,继续向下,满足P4,给出P4尚需要量:0、1、1,系统剩余资源:5、2、1;P4满足最大需要量,可以完成,完成后全部返回,此时系统剩余资源有:7、4、3;
向下满足P5,给出4、3、3,自己剩余3、1、2,P5全部完成后,全部返回,此时系统剩余资源为:7、4、5;从头开始向下数,满足P1,给出:7、4、3,还剩:0、0、2;当P1完成后全部返回,系统剩余资源有:7、5、5;
至此,P1、P2、P3、P4、P5五个进程全部完成,没有死锁,该状态存在安全序列:P2、P4、P5、P1、P3,该状态安全。
六、不安全序列:
当系统剩余资源量不满足系统任何一个进程的尚需要量的时候,该状态就属于不安全状态。
操作系统是否处于安全状态:
https://www.bbaqw.com/anquan/4448830/