操作系统复习笔记4——死锁

342 阅读1分钟

死锁引入

image.png

资源分配图 image.png 有环路不一定死锁,死锁一定有环路

产生死锁的四个必要条件

互斥使用: 至少有一个资源互斥使用 不可抢占: 资源只能进程自愿放弃 持有和等待:进程必须持有资源再去申请 循环等待: 在资源分配图中有一个环路

死锁处理方法

image.png

1、死锁预防

破除死锁预防会引入不合理因素,实际中很少使用

破除互斥使用:资源的固有特性,通常无法破除

破除不可抢占:

image.png 破除持有和等待:

image.png 破除循环等待:

image.png

2、死锁避免

判断请求是否会导致死锁,会则拒绝;

image.png 银行家算法

image.png

image.png 资源请求算法,进程申请资源时如果资源足够分配,就分配,然后调用银行家算法判断是否存在安全序列,不存在则报错 image.png 缺点:

image.png

3、死锁检测+恢复

够就分配,定时检测或发现资源利用率低时检测,执行银行家算法检测是否存在死锁,将未分配资源的进程看作已完成; 或者通过简化资源分配图来检查是否死锁。

4、忽略

重启

王道考研

系统资源不足并不能是导致产生死锁的原因,会产生饥饿,资源分配不当可能是导致产生死锁的原因。

image.png 答案:B 死锁避免方法并不会限制进程申请资源的顺序