- 分析死锁问题
- 原因:进程占用一个资源并请求被其他进程占用的资源
- 必要条件:互斥,占用并等待,非抢占,循环等待
- 资源申请使用流程:申请,使用,释放
- 资源分配图:
- 预防
- 互斥:通常不能改
- 占有并等待:进程执行前备齐所有资源;或者申请下一个时释放前一个。可能引发饥饿问题
- 非抢占:如果一个进程占有资源并申请另一个不能分配的资源,那么已分配资源可被抢占
- 循环等待:设置资源申请顺序,依次申请释放
- 避免:确保系统不进入不安全状态
- 资源分配图:引入需求边
- 银行家算法:
- 安全性算法
- 资源请求算法
- 检测:调用取决于死锁发生频率和死锁发生时受影响的进程数量
- 等待图
- 银行家算法
- 恢复:选择牺牲品并考虑饥饿,避免总是同一个进程成为牺牲品
操作系统——死锁:处理方法:预防避免、检测恢复、忽视
最新推荐文章于 2023-06-16 20:05:54 发布