操作系统 处理死锁的策略
1. 忽视死锁
忽视死锁是所有机制中最常用的方法。许多操作系统主要用于最终用户使用。在这种方法中,操作系统假设死锁永远不会发生。它只是忽视死锁。这种方法最适合单个最终用户系统,用户只用于浏览和其他常规工作。
正确性和性能之间存在权衡。像Windows和Linux这样的操作系统主要关注性能。然而,如果系统每次都使用死锁处理机制,系统的性能会降低,如果死锁发生100次中的1次,那么完全没有必要一直使用死锁处理机制。
在这些类型的系统中,用户只需在死锁发生时重新启动计算机。Windows和Linux主要使用此方法。
2. 死锁预防
仅当互斥,保持和等待,不可抢占以及循环等待同时存在时,死锁才会发生。如果可以在任何时候违反这四个条件中的一个,那么系统中永远不会发生死锁。
这种方法背后的思想非常简单,我们必须违反这四个条件之一,但在系统中的物理实现上可能会有很大争议。
以后我们会详细讨论它。
3. 死锁避免
在死锁避免中,操作系统在执行每个步骤时都会检查系统是否处于安全状态或不安全状态。该过程持续进行,直到系统处于安全状态。一旦系统进入不安全状态,操作系统必须回溯一步。
简单来说,操作系统审查每个分配,以确保分配不会在系统中引发死锁。
我们以后会详细讨论死锁避免。
4. 死锁检测和恢复
这种方法允许进程陷入死锁,然后定期检查系统中是否发生死锁。如果发生死锁,则应用一些恢复方法来摆脱死锁。
因为这是一个讨论问题,所以我们以后会更详细地讨论死锁检测和恢复。