死锁的避免
死锁的预防与避免策略
方法 | 说明 | 优点 | 缺点 |
---|---|---|---|
预防死锁 | 静态策略,通过对进程的资源申请进行事先限制,以减少死锁发生的可能性。 | 简单直观,确保从一开始就避免死锁的发生。 | 灵活性差,可能导致资源利用率降低,甚至产生资源浪费。 |
避免死锁 | 动态策略,允许进程动态申请资源,但在分配前进行安全性检查,防止系统进入不安全状态。 | 灵活,动态分配资源,能够避免死锁。 | 对资源申请分析计算复杂,系统开销较大,难以精确掌握每个进程所需的最大资源数。 |
死锁避免的策略和方法
策略 | 方法 | 工作原理 |
---|---|---|
银行家算法 | 死锁避免算法,用于判断系统在分配资源后是否仍然处于安全状态。 | 系统在每次分配资源前,检查是否有足够的资源满足当前请求;如果分配该资源后,系统仍然安全,则允许分配,否则拒绝请求。 |
资源请求时的安全检查 | 动态分配资源时进行检查,确保不进入不安全状态。 | 系统检查进程的资源请求是否会导致死锁,如果安全则允许请求,否则拒绝。 |