OS 基础教程

进程管理

同步

死锁

内存管理

文件管理

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/os-strategies-for-handling-deadlock.html

处理死锁的策略


1.死锁无知

死锁无知是所有机制中使用最广泛的方法。 许多操作系统主要为最终用户使用。 在这种方法中,操作系统假定永远不会发生死锁。 它只是无视死锁。 这种方法最适合用户使用系统仅用于浏览和所有其他常规内容的单个最终用户系统。

正确性和性能之间总是有一个折衷。 Windows和Linux等操作系统主要关注性能。 但是,如果死锁发生的次数是100次,那么系统的性能就会一直下降,如果它始终使用死锁处理机制,那么完全没有必要始终使用死锁处理机制。

在这些类型的系统中,用户不得不在死锁情况下重新启动计算机。 Windows和Linux主要使用这种方法。

2.死锁预防

只有当相互排斥,持有和等待,没有抢先和循环等待同时成立时,才会发生死锁。 如果有可能在任何时候违反四个条件之一,那么在系统中永远不会发生死锁。

这种方法背后的想法非常简单,我们必须在四种情况之一中失败,但在系统中的物理实现方面可能会有一个大的争论。

我们稍后会详细讨论它。

3.避免死锁

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

简而言之,操作系统审查每个分配,以便分配不会导致系统中的死锁。

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

4.死锁检测和恢复

这种方法让进程陷入死锁,然后定期检查系统中是否发生死锁。 如果它发生,那么它会将一些恢复方法应用到系统中以消除死锁。

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