📜  操作系统策略处理死锁

📅  最后修改于: 2020-12-14 09:23:48             🧑  作者: Mango

处理死锁的策略

1.死锁无知

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

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

在这些类型的系统中,用户必须在出现死锁的情况下简单地重新启动计算机。 Windows和Linux主要使用这种方法。

2.防止死锁

死锁仅在互斥,保持和等待,无抢占和循环等待同时保持时发生。如果有可能随时违反这四个条件之一,则死锁永远不会在系统中发生。

该方法背后的思想非常简单,我们必须使四个条件之一失效,但是在系统中对其物理实现的观点可能会引起很大争议。

我们将在后面详细讨论。

3.避免死锁

在避免死锁的情况下,操作系统会在操作系统执行的每个步骤中检查系统是处于安全状态还是不安全状态。该过程一直持续到系统处于安全状态为止。一旦系统进入不安全状态,操作系统就必须回退一步。

简而言之,操作系统会检查每个分配,以使分配不会导致系统死锁。

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

4.死锁检测和恢复

这种方法使进程陷入死锁,然后定期检查系统中是否发生死锁。如果发生这种情况,则它将某些恢复方法应用于系统以摆脱死锁。

由于稍后将讨论死锁,因此我们将在后面详细讨论死锁检测和恢复。