星海

操作系统 · 主观题 · 第 31 题

计算机基础面试八股 · 第 31 题

说说死锁产生的四个必要条件,以及处理死锁的几类方法。

参考答案

四个必要条件(缺一不可):
1. 互斥:资源同一时刻只能被一个进程占用。
2. 请求并保持:进程已持有资源,又去申请新资源,申请不到时不释放已有的。
3. 不可剥夺:已分配的资源不能被强行夺走。
4. 循环等待:存在进程与资源的环形等待链。
处理方法:
1. 预防:破坏任一条件,如一次性申请全部资源、按序申请资源、允许剥夺。
2. 避免:分配前判断是否安全,如银行家算法。
3. 检测与解除:允许死锁发生,用资源分配图或等待图检测,再撤销进程或抢占资源。
4. 忽略(鸵鸟策略):通用操作系统常用。
工程实践:多把锁固定加锁顺序、用 tryLock 加超时、缩小锁的范围;数据库会自动检测死锁并回滚其中一个事务。

解析

条件与方法要能对应上,最好能举工程里的例子。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。