面试题答案
一键面试资源剥夺法
- 基本原理:从其他进程剥夺足够数量的资源给死锁进程,以打破死锁。这些资源通常是死锁进程所需要且其他进程暂时可释放的。
- 优点:不终止进程,能保留进程已完成的工作,对系统影响相对较小,尽量维持系统中进程运行状态。
- 缺点:选择剥夺资源的进程较困难,若选择不当可能导致该进程执行受影响甚至无法继续正常执行;反复剥夺资源可能增加系统开销,降低系统效率。
撤销进程法
- 基本原理:强制撤销死锁进程,释放其占有的全部资源,从而打破死锁。可以一次性撤销所有死锁进程,也可逐步撤销部分进程直到死锁解除。
- 优点:实现相对简单,能快速打破死锁状态,有效解决死锁问题。
- 缺点:撤销进程意味着进程之前的工作全部丢失,尤其是对一些运行时间长、重要的进程,损失较大;若撤销进程选择不当,可能影响系统功能或用户任务完成。
进程回退法
- 基本原理:让死锁进程回退到某个之前的检查点状态,释放从检查点之后获取的资源,使系统摆脱死锁状态。系统需记录进程执行过程中的检查点及资源使用情况。
- 优点:可避免撤销整个进程,减少进程重新执行的工作量,在一定程度上保留进程之前的执行成果;相比资源剥夺法,对进程运行干扰较小,可维持进程执行的连贯性。
- 缺点:实现复杂,需要额外机制记录检查点及资源使用历史;回退可能导致部分已完成操作重复执行,增加系统开销;确定回退点困难,回退点选择不当可能无法有效解除死锁或造成资源浪费。