+ -
当前位置:首页 → 问答吧 → 哲学家就餐问题

哲学家就餐问题

时间:2011-12-23

来源:互联网

背景:哲学家就餐问题可以这样表述,假设有五位哲学家围坐在一张圆形餐桌旁,做以下两件事情之一:吃饭,或者思考。吃东西的时候,他们就停止思考,思考的时候也停止吃东西。餐桌中间有一大碗意大利面,每两个哲学家之间有一只餐叉。假设哲学家必须用两只餐叉吃东西。他们互相不沟通,怎样确保不会有人饿死。


以下是资源分级解法的说明,我想问的是:如果按下面的方法,但是改为就餐后先放下较低的,再放下较高的。会有问题吗?


分配一个偏序或者分级的关系,并约定所有资源都按照这种顺序获取,按相反顺序释放,而且保证不会有两个无关资源同时被同一项工作所需要。在哲学家就餐问题中,资源(餐叉)按照某种规则编号为1至5,每一个工作单元(哲学家)总是先拿起左右两边编号较低的餐叉,再拿编号较高的。用完餐叉后,他总是先放下编号较高的餐叉,再放下编号较低的。

作者: ly61baby   发布时间: 2011-12-23

有点意思,我也来做一做

作者: coding_my_life   发布时间: 2011-12-23

这是《现代操作系统》一书中对该问题的解法,建议楼主看一看
http://book.51cto.com/art/200907/138168.htm

作者: coding_my_life   发布时间: 2011-12-23