1. 问题描述:
一个房间内有 6 个哲学家,他们的生活就是思考和进食。哲学家思考后,
过一定的时间就会饥饿,饥饿之后就想吃饭,吃饭后再思考。房间里有一张
圆桌,桌子周围放有五把椅子,分别属于五位哲学家每两位哲学家之间有一
把叉子,哲学家进食时必须同时使用左右两把叉子。
2. 问题分析
1、写出哲学家进餐的算法描述。
用六只筷子解决需要用两双筷子来进餐的六个哲学家 ,由于每个哲学家都需
要其周围的两只筷子,所以筷子是公用信号量,这久需要设置一个互斥信号量,
来使六个哲学家互斥的进餐.具体做法将六个信号量设置为 0-5,用 pv 源于来
控制信号量,并将六个哲学家分别编号为 0-5.经过仔细分析我们会发现,有这
样一个问题存在,就是当每个哲学家都申请到他周围的一只筷子时,由于他们
每人都只有一只筷子无法进餐,没有进餐他们就无法释放他们已经得得到的
筷子,这样是进餐出于一种僵局,无法继续下去,这就是死锁问题.
2、死锁问题的分析与具体的解决方法。
1
0
4
3
2