[24][29][单选]下列图示描述的是经典的哲学家进餐问题。下列各方法中,哪一种可以预防死锁的发生?
为每只筷子设置一个信号量,哲学家通过执行 P、V 操作保证筷子的互斥使用
定时检查,当发现死锁时,额外提供一支筷子
采用银行家算法分配筷子
至多只允许 4 个哲学家可以同时取得筷子
答案
至多只允许 4 个哲学家可以同时取得筷子
解析
仅当某哲学家左右两边的筷子都可用时,才允许他取筷子,那么必然有一个哲学家能申请到其用餐需要的两只筷子。当他用餐完毕并释放出两只筷子,其他等待筷子的哲学家又能获得筷子用餐,以此类推,最终所有哲学家都能获得两只筷子的机会进而用餐。(P,V操作虽然可以保证互斥使用筷子,但有可能产生死锁,定时检查无法及时预防死锁的发生,银行家算法属于死锁避免,故选择该选项。涉及考点为第 8 章 死锁。
转载请注明出处。