操作系统 · 单选题 · 第 19 题
计算机基础面试八股 · 第 19 题
下列做法中,破坏的是死锁必要条件中的「循环等待」的是?
- A进程开始运行之前,一次性申请它需要的全部资源
- B给所有资源统一编号,进程只能按编号递增的顺序申请资源
- C进程申请新资源得不到满足时,释放已经持有的资源
- D把打印机等独占设备用 SPOOLing 技术改造成共享设备
答案
B B. 给所有资源统一编号,进程只能按编号递增的顺序申请资源
解析
按统一顺序申请资源后,等待关系只能从小编号指向大编号,不可能形成环。一次性申请全部资源破坏的是「请求并保持」,得不到就释放破坏的是「不可剥夺」,SPOOLing 破坏的是「互斥」。实际开发中多把锁按固定顺序加锁,就是这个思路。