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