死锁的处理策略

2024 年 8 月 28 日 | 阅读 2 分钟

1. 死锁忽略

死锁忽略是所有机制中最广泛使用的一种方法。许多操作系统主要将其用于最终用户。在这种方法中,操作系统假定死锁永远不会发生。它根本忽略死锁。这种方法最适合单用户系统,其中用户仅用于浏览和其他所有正常活动。

正确性和性能之间总是有权衡的。Windows和Linux等操作系统主要关注性能。但是,如果系统一直在使用死锁处理机制,那么系统的性能就会下降。如果死锁发生 100 次中有 1 次,那么一直使用死锁处理机制是完全不必要的。

在这些类型的系统中,如果发生死锁,用户只需重新启动计算机。Windows和Linux主要使用这种方法。

2. 死锁预防

只有当互斥、持有并等待、不可剥夺和循环等待同时存在时,才会发生死锁。如果有可能在任何时候违反四种条件之一,那么死锁就永远不会在系统中发生。

该方法的思想非常简单,我们必须破坏四种条件之一,但其在系统中的物理实现可能会引起很大的争议。

稍后我们将详细讨论。

3. 死锁避免

在死锁避免中,操作系统在操作系统执行的每一步都会检查系统是处于安全状态还是不安全状态。进程继续进行,直到系统处于安全状态。一旦系统进入不安全状态,操作系统就必须回溯一步。

简而言之,操作系统会审查每次资源分配,以确保分配不会导致系统死锁。

稍后我们将详细讨论死锁避免。

4. 死锁检测和恢复

这种方法允许进程陷入死锁,然后定期检查系统中是否发生死锁。如果发生,它会应用一些恢复方法来摆脱死锁。

稍后我们将更详细地讨论死锁检测和恢复,因为它是一个讨论点。


下一个话题死锁预防