1. 死锁产生的四个必要条件是什么?预防、避免、检测与解除四类策略分别破坏哪个条件?
死锁产生的四个必要条件是什么?预防、避免、检测与解除四类策略分别破坏哪个条件?
- 四个必要条件:互斥、占有且等待、不可剥夺、循环等待。
- 预防:破坏四个条件之一(如一次性申请全部资源、可剥夺、资源排序)。
- 避免:银行家算法,在分配前判断是否安全。
死锁产生的四个必要条件是:互斥(资源一次只能被一个进程使用)、占有且等待(进程持有资源又在等待其他资源)、不可剥夺(资源不能被强行夺走)、循环等待(存在一个进程等待链形成环)。四者同时满足才可能死锁。预防策略设法破坏其一:破坏互斥(用假脱机/可共享资源)、破坏占有且等待(要求进程一次性申请全部所需资源)、破坏不可剥夺(允许剥夺)、破坏循环等待(对所有资源规定顺序,进程按升序申请)。避免策略(如银行家算法)在每次分配前动态判断系统是否仍处于安全状态,不满足则拒绝分配,避免进入不安全状态。检测策略定期检查资源分配图是否成环,一旦成环即判定死锁;解除策略则通过终止部分进程(撤销其资源)或剥夺资源分配给其他进程来打破死锁。
四类策略的切入点不同:预防是"静态约定、杜绝成因",避免是"动态判断、前瞻预防",检测是"事后发现",解除是"打破现状"。掌握"四条件"与"对应破坏策略"的映射是本题核心,例如"破坏循环等待=资源排序"是最常考查的一对。