死锁引入
资源分配图
有环路不一定死锁,死锁一定有环路
产生死锁的四个必要条件
互斥使用: 至少有一个资源互斥使用 不可抢占: 资源只能进程自愿放弃 持有和等待:进程必须持有资源再去申请 循环等待: 在资源分配图中有一个环路
死锁处理方法
1、死锁预防
破除死锁预防会引入不合理因素,实际中很少使用
破除互斥使用:资源的固有特性,通常无法破除
破除不可抢占:
破除持有和等待:
破除循环等待:
2、死锁避免
判断请求是否会导致死锁,会则拒绝;
银行家算法
资源请求算法,进程申请资源时如果资源足够分配,就分配,然后调用银行家算法判断是否存在安全序列,不存在则报错
缺点:
3、死锁检测+恢复
够就分配,定时检测或发现资源利用率低时检测,执行银行家算法检测是否存在死锁,将未分配资源的进程看作已完成; 或者通过简化资源分配图来检查是否死锁。
4、忽略
重启
王道考研
系统资源不足并不能是导致产生死锁的原因,会产生饥饿,资源分配不当可能是导致产生死锁的原因。
答案:B 死锁避免方法并不会限制进程申请资源的顺序