阅读:2585回复:24
哲学家进餐问题
7个哲学家围坐在一张圆桌周围,每个哲学家面前有一个碟通心面,由于面条很滑,所以要用两把叉子才能夹住。相邻两个碟子之间有一把叉子。哲学家的生活包括三种状态:即吃饭,思考和挨饿,当一个哲学家觉得饿时,他试图分两次去取他左边和右边的叉子,每次拿一把,但不分次序。如果成功地获得了两把叉子,他就开始吃饭,吃完以后放下叉子继续思考。这里的问题是:为每一个哲学家写一段程序来描述起行为,要求不能死锁。
:D :D |
|
|
沙发#
发布于:2002-12-16 13:46
这不是操作系统书上的 原子操作的例子吗?
|
|
板凳#
发布于:2002-12-16 13:51
这不是操作系统书上的 原子操作的例子吗? 就是啊~ |
|
|
地板#
发布于:2002-12-16 13:52
[quote]这不是操作系统书上的 原子操作的例子吗? 就是啊~ [/quote] :D |
|
地下室#
发布于:2002-12-16 13:53
这不是操作系统书上的 原子操作的例子吗? 我怎么不知道? |
|
5楼#
发布于:2002-12-16 13:57
[quote]这不是操作系统书上的 原子操作的例子吗? 就是啊~ [/quote] 考试!!! |
|
|
6楼#
发布于:2002-12-16 14:05
这不是操作系统书上的 原子操作的例子吗? 没见过呀! |
|
7楼#
发布于:2002-12-16 14:07
我也没见过 :(
|
|
|
8楼#
发布于:2002-12-16 14:35
我们设定7个哲学家,且不允许哲学家饿死。为每个哲学家创建一个线程,把叉子看作条件变量,让线程等待条件变量,如果满足条件,则线程执行(哲学家的吃饭状态),执行一定时间之后,释放条件变量,进入休眠状态(哲学家的思考状态),当休眠时间过去之后,线程被唤醒,重新等待条件变量(哲学家的挨饿状态)。
:) :D |
|
|
9楼#
发布于:2002-12-16 14:41
我们设定7个哲学家,且不允许哲学家饿死。为每个哲学家创建一个线程,把叉子看作条件变量,让线程等待条件变量,如果满足条件,则线程执行(哲学家的吃饭状态),执行一定时间之后,释放条件变量,进入休眠状态(哲学家的思考状态),当休眠时间过去之后,线程被唤醒,重新等待条件变量(哲学家的挨饿状态)。:D :D :) :D :) |
|
10楼#
发布于:2002-12-16 14:47
我们设定7个哲学家,且不允许哲学家饿死。为每个哲学家创建一个线程,把叉子看作条件变量,让线程等待条件变量,如果满足条件,则线程执行(哲学家的吃饭状态),执行一定时间之后,释放条件变量,进入休眠状态(哲学家的思考状态),当休眠时间过去之后,线程被唤醒,重新等待条件变量(哲学家的挨饿状态)。 这样啊! |
|
11楼#
发布于:2002-12-16 15:05
有分。。。 :)
|
|
|
12楼#
发布于:2002-12-16 15:26
有分。。。 :) :( :( :( |
|
|
13楼#
发布于:2002-12-16 16:23
[quote]有分。。。 :) :( :( :( [/quote] 哪有? |
|
14楼#
发布于:2002-12-16 16:41
[quote][quote]有分。。。 :) :( :( :( [/quote] 哪有? [/quote] 往第2贴上看。。。。 |
|
|
15楼#
发布于:2002-12-16 17:06
你都放完了,让我们看什么看?
|
|
16楼#
发布于:2002-12-16 17:08
侯捷的一本书上写了这个算法的,其实有先决条件的,否则一定存在死锁的情况!
|
|
17楼#
发布于:2002-12-16 17:20
有难度的问题都会有分的。
放之前说不知道这贴会被灌成什么样子了。。 ;) |
|
|
18楼#
发布于:2002-12-16 17:22
有难度的问题都会有分的。 对,要学会动脑筋 |
|
19楼#
发布于:2002-12-16 17:28
侯捷的一本书上写了这个算法的,其实有先决条件的,否则一定存在死锁的情况! 介绍给我学习一下。。 :o |
|
|
上一页
下一页