在进程对设备、文件等取得了排他性访问权时,可能出现死锁。
抢占资源与不可抢占资源
总的来说,死锁与不可抢占资源有关。
请求一个资源所需要的时间顺序可以用抽象的形式表示如下:
1、请求资源
2、使用资源
3、释放资源
死锁的规范定义:一个进程集合中的每个进程都在等待只能由该进程集合中的其他进程才能引发的时间,那么,该进程集合就是死锁的
资源死锁的条件
1、互斥条件
2、占有和等待条件
3、不可抢占条件
4、环路等待条件
处理死锁的方法
1、鸵鸟算法
衡量解决成本和损失,将死锁问题置之不理,出现时再解决
2、死锁检测和死锁恢复
系统并不试图组织死锁的产生,而是允许死锁发生,当检测到死锁发生后,再采取措施进行恢复。
可以依据矩阵对死锁进行检测
死锁恢复可以通过抢占、回滚、杀死进程进行恢复
安全状态和不安全状态的区别:从安全状态出发,系统能够保证所有进程都能完成;从不完全状态出发,就没有这样的保证。
银行家算法:一种理想情况下判断能否解决死锁的方法
称其理想化的原因:很少有机进程能够在运行前就知道其所需资源的最大值,而且进程数也不是固定的。另外原本可以用的资源也可能突然失效不能用了。